THIẾT KẾ HỆ THỐNG

Một phần của tài liệu Xây dựng ứng dụng đọc tin tức trường Đại học sư phạm - Đại học Đà Nẵng trên nền tảng Android. (Trang 33)

6. Bố cục đề tài

2.3. THIẾT KẾ HỆ THỐNG

2.3.1.Sơ đồ tổng quan hệ thống

2.3.2. Usecase

2.3.2.1. Sơ đồ Usecase

Hình 2.8. Sơ đồ Usecase 2.3.2.2. Đặc tả Usecase

Bảng 2.1 Đặc tả Usecase “Kiểm tra tin mới”

Tóm tắt:

Cho phép người sử dụng kiểm tra danh mục tin có tin mới hay không. Dòng sự kiện chính:

1.Người sử dụng phải vào danh sách tin. 2.Nhấn giữ và kéo xuống dưới màn hình.

3.Ứng dụng sẽ hiện thông báo là đang kiểm tra tin.

 Tin sẽ được thêm vào cơ sở dữ liệu

 Tạo thông báo Notification Dòng sự kiện phụ: (Không có) Yêu cầu đặc biệt:

- Phải vào chức năng danh sách tin trước Tiền điều kiện: (Không có)

Hậu điều kiện:

- Ứng dụng sẽ kiểm tra có tin mới hay không Điểm mở rộng: (Không có)

- Đặc tả Usecase “Đăng ký chuyên mục”

Bảng 2.2. Đặc tả Usecase “Đăng ký chuyên mục”

Tóm tắt:

Cho phép người sử dụng đăng ký nhận tin tự động theo chuyên mục. Dòng sự kiện chính:

1. Người sử dụng phải vào chức năng “Đăng ký” ở menu.

2. Nhấn chọn vào checkbox những mục muốn nhận tin, bỏ chọn ở những mục không muốn nhận tin.

3. Hệ thống sẽ cập nhật trạng thái cho từng chuyên mục là có nhận tin hay không.

Dòng sự kiện phụ: (Không có) Yêu cầu đặc biệt:(Không có) Tiền điều kiện: (Không có) Hậu điều kiện:

- Trạng thái các danh mục được đăng ký nhận tin Điểm mở rộng: (Không có)

Bảng 2.3. Đặc tả Usecase “Xem danh sách tin”

Tóm tắt:

Cho phép người sử dụng có thể xem danh sách tin tức của một chuyên mục Dòng sự kiện chính:

1. Người sử dụng phải vào ứng dụng.

2. Mặc định danh sách tin được hiện ra. Hoặc có thể vào menu chọn Dòng sự kiện phụ: (Không có)

Yêu cầu đặc biệt:

-Phải vào ứng dụng trước Tiền điều kiện: (Không có) Hậu điều kiện: (Không có) Điểm mở rộng: (Không có)

- Đặc tả Usecase “Cài đặt”

Bảng 2.4. Đặc tả Usecase “Cài đặt”

Tóm tắt:

Cho phép người sử dụng có cài đặt nhận tin Dòng sự kiện chính:

1. Người sử dụng phải vào cài đặt

2. Tùy chọn cài số tin nhận, tối đa 150 tin

3. Tùy chọn cài số ngày nhận tin, tối đa 30 ngày 4. Sau khi thay đổi giá trị, giá trị tự động lưu lại Dòng sự kiện phụ: (Không có)

Yêu cầu đặc biệt:

-Phải vào menu để vào chức năng cài đặt tin Tiền điều kiện:

-Vào danh sách menu Hậu điều kiện:

-Nội dung tin được hiển thị ra màn hình Điểm mở rộng:(Không có)

2.3.3.Sơ đồ tuần tự

2.3.3.1. Chức năng đọc tin

Hình 2.9. Sơ đồ tuần tự chức năng đọc tin 2.3.3.2. Chức năng kiểm tra tin mới

2.3.3.3. Chức năng đăng ký chuyên mục

Hình 2.11. Sơ đồ tuần tự chức năng đăng ký chuyên mục 2.3.3.4. Chức năng cài đặt

2.3.4.Thiết kế cơ sở dữ liệu

- Bảng dữ liệu mặc định phải tồn tại trong một cơ sở dữ liệu.

Bảng 2.5. Thông tin bảng “android_metadata”

Tính chất Tên trường

Kiểu dữ

liệu Chú thích

locale Text Trường có giá trị mặc định là “en_US”

- Bảng dữ liệu “Category” chứa thông tin chuyên mục.

Bảng 2.6. Thông tin bảng “category”

Tính chất Tên trường Kiểu dữ

liệu Chú thích

Khóa Id Integer ID của chuyên mục Name Text Tên của chuyên mục

Idrss Integer

IDRSS của mỗi RSS(Nghĩa là trong một link RSS có chứa nhiều tin của R)

Parent Integer

Xác định được chuyên mục cha và chuyên mục con, chuyên mục cha có Parent bằng 0

Rss Text Chứa địa chỉ liên kết đến RSS của chuyên mục

Image Text Hình ảnh của chuyên mục

Getnews Integer Trạng thái đăng ký nhận tin của chuyên mục.(1 là nhân tin, 0 là không nhận tin)

- Bảng dữ liệu “News” chứa thông tin tin.

Bảng 2.7. Thông tin bảng “news”

Tính chất Tên trường

Kiểu

dữ liệu Chú thích

Khóa Id Integer Mã tin

Tham chiếu từ

bảng category Idrss Integer Mã chuyên mục của tin Link Text Địa chỉ lien kết của tin Title Text Tiêu đề tin

Discription Text Mô tả ngắn của tin Content Text Nội dung của tin

Image Text Địa chỉ liên kết hình đại diện của tin Pubdate Text Ngày đăng của tin

Isread Integer

Chứa trạng thái của tin(0 là tin chưa được đọc, 1 là tin đã được đọc, 2 là tin lần cuối cùng tải về và chưa đợc đọc)

2.3.5. Sơ đồ lớp

2.3.6. Sơ đồ quan hệ giữa các bảng

CHƯƠNG 3

THỬ NGHIỆM CHƯƠNG TRÌNH

3.1. ỨNG DỤNG

3.1.1. Màn hình chính

Màn hình chính là chức năng danh sách các tin. Trong danh sách này với mỗi mục bên trái là tên của chuyên mục tin. Phần bên phải gồm 3 số cách nhau bởi một dấu xuyệt, số thứ nhất là số tin chưa đọc của lần cập nhật sau cùng, số thứ hai là tổng số tin chưa đọc và số cuối cùng là tổng số tin của chuyên mục.

Hình 3.1. Giao diện màn hình chính

3.1.2. Danh sách tin

Danh sách tin là chức năng chứa toàn bộ tin của một chuyên mục cụ thể. Danh sách tin được hiển thị với một hình mô tả bên trái và tiêu đề tin ở bên phải.

Hình 3.2. Danh sách tin

Trong danh sách đọc tin còn có các chức năng lọc tin theo chuyên mục và lọc tin theo trạng thái tin đã đọc, chưa đọc và tất cả tin.

Hình 3.3. Các chức năng lọc tin

3.1.3. Đọc tin chi tiết

Với tin đã được đọc thì màu sác sẽ được tô đậm hơn những tin bình thường. Việc làm này giúp người sử dụng phân biệt được tin nào đã đọc hoặc chưa đọc một cách dễ dàng.

Hình 3.4. Phân biệt tin đã đọc hoặc chưa đọc

Khi nhấn chọn vào một tin trong danh sách tin màn hình đọc tin chi tiết sẽ xuất hiện. Tin bài sẽ được tải về và hiển thị trên màn hình.

Hình 3.5. Chức năng đọc tin chi tiết

Khi tin được tải về hoàn tất, người sử dụng có thể chia sẽ tin nếu muốn. Tin có thể được chia sẻ ở phần tin nhắn, ghi chú hoặc ở các mạng xã hội.

Hình 3.6. Chức năng chia sẻ tin

Cài đặt nhận tin

Với màn hình chức năng cài đặt người sử dụng có thể cài đặt số tin tối đa một lần tải về và số ngày tối đa của tin tải về. Việc thay đổi giá trị của từng thanh giá trị tương ứng với việc thay đổi giá trị của cài đặt, giá trị được tự động lưu khi có sự thay đổi.

3.2 KIỂM NGHIỆM THỰC TẾ

3.2.1. Đưa ứng dụng lên Google Play

Sau quá trình thiết kế và xây dựng ứng dụng được đưa lên chạy thử nghiệm tạo ứng dụng Google Play với tên gọi “DUEd News” tại địa chỉ https://play.google.com/store/apps/details?id=it.ued.uedtintuc.

Hình 3.8. Ứng dụng tại Google Play.

Việc đưa ứng dụng lên Google Play được bắt đầu từ ngày 25 tháng 01 năm 2015 với phiên bản đầu tiên 1.0. Lần cập nhật sau cùng làm ngày 08 tháng 05 năm 2015 với phiên bản 2.8515. Qua những lần cập nhật, ứng dụng được bổ sung tính năng mới, cải thiện độ thân thiện và ổn định.

3.2.2. Thống kê đạt được

Sau thời gian đưa ứng dụng lên kho ứng dụng Google Play. Thông kê lấy từ tài khoản quản lý ứng dụng cho thấy ứng dụng đã đạt được một số mốc nhất định như sau:

Tổng số lượt cài đặt là 18 trên tổng số 17 dòng thiết bị. Các thiết bị đến từ các hảng sản xuất điện thoại di động tiêu biển là Samsung, Asus, Sony và Pantech.

Hình 3.9. Tên và số lượng một số thiết bị cài đặt ứng dụng

Trên lượt cài đặt hiện có thì phiên bản hệ điều hành Android 4.4 có 7 thiết bị cài đặt chiếm 38.89% tổng số thiết bị đã cài đặt ứng dụng. Đứng thứ 2 về lượt cài đặt là phiên bản Android 4.0.3 – 4.0.4 có 5 lượt cài đặt chiếm 27.78%. Phiên bản Android 4.1 và Android 4.0 chiếm 11.11%.

Hình 3.10. Lượt cài đặt trên phiên bản hệ điều hành tính đến 07/05/2015

Thống kê lượt cài đặt trên mạng di động cho thấy chỉ có 12 thiết bị được cài đặt có sử dụng mạng di động tại Việt Nam chiếm 61.67%. Còn lại các lượt cài đặt đến từ các mạng di động ngoài Việt Nam.

Hình 3.11. Lượt cài đặt trên nhà mạng di động tính đến 07/05/2015

Ứng dụng nhận được đánh giá trung bình 5.00 / 5.00 của 4 lượt đánh giá.

KẾT LUẬN VÀ KIẾN NGHỊ

KẾT QUẢ ĐẠT ĐƯỢC

Trong quá trình nghiên cứu và thực hiện đề tài khóa luận em đã tìm hiểu và nắm được một số vấn đề:

1.Về lý thuyết

a. Cũng cố kiến thức lập trình và các môn học liên quan.

b. Tìm hiểm được tảng phần mềm Android, cách xây dựng một ứng dụng trên điện thoại Android nói chung và một ứng dụng sử dụng internet nói riêng.

c. Bên cạnh đó, để xây dựng được ứng dụng này thì em cũng đã phải nghiên cứu và hiểu thêm nhiều công nghệ liên quan như XML, Web service, JSON, SQLite, GCM…

2.Về chương trình

a. Đề tài hoàn thành và cơ bản đạt được những yêu cầu đề tài. b. Ứng dụng hoạt động tương đối ổn đinh.

c. Tiết kiệm tối đa lưu lượng truy cập internet

d. Giao diện thân thiện, hiệu ứng bắt mắt, dễ dàng sử dụng dù là người tiếp cận lần đầu tiên.

e. Đã đưa ứng dụng lên kho ứng dụng Google Play.

HẠN CHẾ

Bên cạnh những kết quả đạt được trên, em vẫn còn nhiều hạn chế trong quá trình thực hiện khóa luận.

HƯỚNG PHÁT TRIỂN

Để phục vụ nhu cầu sử dụng của đông đảo sinh viên và du học sinh đến học tại trường. Hướng phát triển tiếp theo của đề tài là ứng dụng hổ trợ đa ngôn ngữ (tiếng Lào, tiếng Trung Quốc, tiếng Anh).

Cải thiện độ ổn định của ứng dụng, giảm thiểu lỗi phát sinh do quá trình sử dụng ứng dụng.

Cải thiện giao diện đẹp mắt và hiệu quả hơn, hổ trợ giao diện cho các thiết bị máy tính bảng tốt hơn .

TÀI LIỆU THAM KHẢO

[1] Google Buys Android for Its Mobile Arsenal. Bloomberg Businessweek. Bloomberg, truy cập ngày 02 tháng 05 năm 2015, <http://www.webcitation.org/5wk7sIvVb>

[2] Industry Leaders Announce Open Platform for Mobile Devices, Open Handset Alliance truy cập ngày 02 tháng 05 năm 2015

<http://www.openhandsetalliance.com/press_110507.html>

[3] T-Mobile G1 Spec. Infosite and comparisons. GSM Arena, truy cập ngày 02 tháng 05 năm 2015 < http://www.gsmarena.com/t_mobile_g1- 2533.php>

[4] Google Cloud Messaging for Android, ngày truy cập 02 tháng 05 năm 2015 <https://developer.android.com/google/gcm/index.html>

[5]Parse Documentation, ngày truy cập 02 tháng 05 năm 2015 <https://parse.com/docs>

PHỤ LỤC

Phụ lục 1: Mã nguồn hàm gửi push từ server chạy php

function guiThongBao_Android_GCM($registatoin_ids) { //mã api key của google app đăng ký GCM $GOOGLE_API_KEY=

"AIzaSyDfyFmV3IeB2HiHueSL3dmcAA6eUHw_6Tk";

//link server google nhận nội dung cần thông báo đến thiết bị

$url= 'https://android.googleapis.com/gcm/send'; // nội dung message

$message=

'{"registration_ids":["'.$registatoin_ids.'"],"data": {"where": {"deviceType": "android"},"data": {"message": "news","action": "ACTIONTION"}}}';

//khởi tạo header $headers = array(

'Authorization: key=' .$GOOGLE_API_KEY , 'Content-Type: application/json'

);

// mở kết nối curl $ch = curl_init();

// set nơi truy vấn

curl_setopt($ch, CURLOPT_URL, $url); // set kiểu POST

curl_setopt($ch, CURLOPT_POST, true); // set header curl_setopt($ch,CURLOPT_HTTPHEADER, $headers); // nhận giá trị trả về curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); // Tắt kiểm tra SSL curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); // thiết lập

curl_setopt($ch,CURLOPT_POSTFIELDS, $message); // thực thi

$result = curl_exec($ch); if ($result === FALSE) {

die('Curl failed: ' . curl_error($ch)); } // đóng kết nối curl_close($ch); // xuất dữ liệu ra màn hình echo $result; }

Phụ lục 2: Mã nguồn file PushNotification.java chụi trách nhiệm nhận push notification

public class PushNotification extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

try {

JSONObject json = new

JSONObject(intent.getExtras().getString(CommonUtilities.

PARSE_PACKAGE_NAME));

String message = json.getString("message");

try{

int contentid = json.getInt("content- id");

String alert = json.getString("alert");

if ("news".equals(message)) { new XmlParser(context, String.valueOf(contentid+1),alert);

}

}catch(NumberFormatException ex){ System.out.println(ex);

try{

String link = json.getString("link"); if ("update".equals(message)) {

generateNotificationUpdate(context, "Có phiên bản update!",link);

} else if ("".equals(message)){

}

}catch(NumberFormatException ex){ System.out.println(ex);

}

} catch (JSONException e) { }

} }

Phụ lục 3: Nội dung file AndroidManifest.xml của ứng dụng

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/androi d" package="it.ued.uedtintuc" android:versionCode="12" android:versionName="2.30315" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="com.android.launcher.permission.INSTALL_SH ORTCUT" />

<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE " /> <permission android:name="it.ued.uedtintuc.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="it.ued.uedtintuc.permission.C2D_MESSAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.sec.android.provider.badge.permission. READ" /> <uses-permission android:name="com.sec.android.provider.badge.permission. WRITE" /> <uses-permission android:name="com.sonyericsson.home.permission.BROADCAST _BADGE" /> <uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCU T" /> <application android:name="it.ued.uedtintuc.ParseApplication" android:allowBackup="true" android:icon="@drawable/logo" android:label="@string/app_name" android:theme="@style/AppTheme" >

<!-- Cấu hình APPID Google app (GCM) --> <meta-data android:name="com.parse.push.gcm_sender_id" android:value="id:776741724278" /> <activity android:name="it.ued.uedtintuc.SplashScreen" android:label="@string/app_name" android:theme="@android:style/Theme.Black.NoTitleBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="it.ued.uedtintuc.MainActivity" android:label="@string/app_name" > </activity> <!-- Màn hình webpage Activity --> <activity android:name="it.ued.uedtintuc.DisPlayWebPageActivity" android:configChanges="keyboardHidden|orientation" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="it.ued.uedtintuc.TinDaNhanActivity" /> </activity> <!-- Màn hình cài đặt --> <activity android:name="it.ued.uedtintuc.CaiDatActivity" android:label="@string/action_settings" > </activity> <activity android:name="it.ued.uedtintuc.TinDaNhanActivity"

android:label="@string/title_activity_tin_da_nhan" > <meta-data android:name="android.app.default_searchable" android:value=".SearchResultsActivity" /> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="it.ued.uedtintuc.MainActivity" /> </activity> <activity android:name="it.ued.uedtintuc.SearchResultsActivity" android:label="@string/action_settings" > <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="it.ued.uedtintuc.TinDaNhanActivity" /> </activity>

<!-- Bắt đầu - Cấu hình Parse và GCM -->

<service android:name="com.parse.PushService" /> <receiver android:name="com.parse.ParseBroadcastReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.USER_PRESENT" /> </intent-filter> </receiver>

<receiver android:name="com.parse.ParsePushBroadcastReceiver" android:exported="false" > <intent-filter> <action android:name="com.parse.push.intent.RECEIVE" /> <action android:name="com.parse.push.intent.DELETE" /> <action android:name="com.parse.push.intent.OPEN" /> </intent-filter> </receiver> <receiver android:name="com.parse.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.S END" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATIO N" /> <!-- IMPORTANT: Change

"com.parse.starter" to match your app's package name. -- > <category android:name="it.ued.uedtintuc" /> </intent-filter> </receiver> <receiver android:name="it.ued.uedtintuc.PushNotification" android:exported="false" > <intent-filter>

<action android:name="ACTIONTION" /> </intent-filter>

</receiver> <activity

android:name="it.ued.uedtintuc.HuongDanActivity" android:theme="@android:style/Theme.Holo.NoActionBar" > </activity> </application> </manifest>

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Đà Nẵng, ngày … tháng 05 năm 2015 Chữ ký GVHD

Một phần của tài liệu Xây dựng ứng dụng đọc tin tức trường Đại học sư phạm - Đại học Đà Nẵng trên nền tảng Android. (Trang 33)

Tải bản đầy đủ (PDF)

(60 trang)