29
1 LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG Khoa Công nghệ thông tin Đại học Kỹ thuật Công nghệ TP HCM – Hutech Trình Bày: ThS. Nguyễn Hà Giang 1

lập trình di động

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: lập trình di động

1

LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG

Khoa Công nghệ thông tin

Đại học Kỹ thuật Công nghệ TP HCM – Hutech

Trình Bày: ThS. Nguyễn Hà Giang

1

Page 2: lập trình di động

2

Nội dung

1. Giới thiệu môn học2. Đề cương môn học3. Cách thức đánh giá4. Tài liệu tham khảo5. Các chủ đề tìm hiểu

Page 3: lập trình di động

3

Mục tiêuCác thiết bị di động như: mobile phone, smart phone, PDA đang ngày trở nên phổ biến, được sử dụng mọi lúc, mọi nơi. Do đa dạng về chủng loại, nền tảng nên khi thiết kế và xây dựng ứng dụng thật không đơn giản.Mục tiêu là nhằm giới thiệu về các nền tảng di động phổ biến và cách thức phát triển app trên các nền tảng đó. Cụ thể SV sẽ tiếp cận với các nền tảng

J2ME (Java 2 Micro Edition): LT + TH

Android: LT + TH

iOS, Windows Phone, Symbian, RIM BB… (nghiên cứu và báo cáo)

Giới thiệu môn học

Page 4: lập trình di động

4

Giới thiệu môn học

Nội dung:Tổng quan các kiến thức cơ bản về lập trình trên thiết bị di độngLập trình trên thiết bị di động đơn giản với J2MELập trình trên thiết bị di động smart phone với AndroidGiới thiệu một số nền tảng lập trình di động khác: Windows Phone 7, BlackBerry, Bada, IPhone OS, Symbian OS, WebOS.

Page 5: lập trình di động

5

Buổi Nội dung Số tiết

1 Giới thiệu tổng quan về lập trình trên thiết bị di động 3

2 Trình bày một số hệ điều hành và ngôn ngữ LT trên các thiết bị di động phổ biến

3

3 J2ME: tổng quan về công nghệ J2ME và kiến trúc J2ME- Tổng quan về MIDLet

3

4 J2ME: lập trình giao diện cấp cao 3

5 J2ME: lập trình giao diện cấp thấp 3

6 J2ME: Record Management System (RMS) 3

7 Android: Tổng quan về lập trình trên HĐH Android- Cơ bản lập trình trên Android

3

8 Android: UI design – Activity 3

9 Android: Service, Async 3

10 Android: SQLite Trau đổi thảo luận

21

Đề cương môn học

Page 6: lập trình di động

6

Hình thức họcNghe giảng lý thuyết, tham gia thảo luậnThực hành đầy đủ các bài lab (bắt buộc)Thực hiện đồ án môn học (bắt buộc)

Hình thức đánh giáThực hành: 30%

Viết một ứng dụng nhỏ trên J2ME hoặc Android

Để thi thực hành phải thực hiện đầy đủ các bài lab

Lý thuyết: 70%Trình bày đồ án môn học

Trình bày đồ án môn học

Trả lời các câu hỏi

Cách thức đánh giá

Page 7: lập trình di động

7

• J2ME• Core J2ME Technology & MIDP, John W. Muchow, Sun.• Beginning J2ME From Novice to Professional, J.Knudsen, Apress.• http://java.sun.com/j2me/

• Android• Beginning Android, Mark L. Murphy, Apress, 2009.• Pro Android Media, Shawn Van Every, Apress, 2009• Unlocking Android – A Developer's Guide, Frank Ableson.• Professional Android™ Application Development, Reto Meier, Wrox.• Pro Android Web Apps, Damon Oehlman, Apress, 2011.• The Android Developer’s Cookbook, James Steele, Addison-Wesley, 2011.• Android™ A Programmer’s Guide, J.F. DiMarzio.• Android Programming Tutorial, Mark L. Murphy, 2011• Android Essentials, Chris Haseman, Apress, 2009.• http://developer.android.com

• Google Search: J2ME, Android…

Tài liệu tham khảo

Page 8: lập trình di động

8

J2ME programming

Java SE development: JDK 6 (http://java.sun.com/javase)

IDE Eclipse + Plug-in J2ME (EclipeME)

Sun J2ME Wireless Toolkit 2.5

NetBeans IDE

Android programming

Java SE development: JDK 6 (http://java.sun.com/javase)

Android SDK

IDE Eclipse + Plug-in for Android

Có thể sử dụng bản Eclipse Galileo (3.5), Helios (3.6), Indigo (3.7), hoặc Juno (4.2).

Công cụ & môi trường thực hành

Page 9: lập trình di động

9

STT Tên đề tài Nhóm sinh viên

1 Tìm hiểu Windows Phone & UD

2 Tìm hiểu cách pháp triển UD Web trên Mobile

3 Nghiên cứu iOS & xây dựng ứng dụng trên iPhone

4 Nghiên cứu Symbian & UD

5 Tìm hiểu RIM BlackBerry & UD

6 Tìm hiểu MeeGo & ứng dụng

7 Tìm hiểu Bada & ứng dụng minh hoạ

Chủ đề tìm hiểu

Page 10: lập trình di động

10

STT Tên ứng dụng Mô tả

1 Ứng dụng quản lý chi tiêu cá nhân

2 Ứng dụng game Tetris

3 Ứng dụng sổ tay cá nhân

4 Ứng dụng Order trong nhà hàng

5 Ứng dụng từ điển Anh-Việt

6 Ứng dụng Online Inventory Terminal Quản lý kho hàng

7 Ứng dụng Game Line

8 Ứng dụng Game Matching

9 Ứng dụng tra cứu mã số bài hát Karaoke 6 số

10 Ứng dụng hỗ trợ học và luyện thi LT bằng lx B2

Các ứng dụng chọn để demo

Lưu ý: nếu hai đề tài cũng tìm hiểu một nền tảng OS, thì ứng dụng demo phải hoàn toàn khác nhau!

Page 11: lập trình di động

11

Nhu cầu sử dụng điện thoại di động đã trở nên phổ biến trên toàn thế giới.Sự tiến bộ vượt bậc của công nghệ đã thay đổi hành vi của con người.Điện thoại di động là lĩnh vực công nghệ phát triển mạnh mẽ nhất!2015: số người truy cập Internet qua điện thoại di động sẽ vượt qua số người truy cập Internet qua PC.

Tại sao phải lập trình trên thiết bị di động?

Điện thoại di động sẽ trở thành phương tiện giao tiếp và là công cụ làm việc chủ yếu của con người

Page 12: lập trình di động

12

Một bảng thống kê từ IDC vào 6/2011:2005: có 50tr người dùng SP, 200tr người dùng NetBook PC2010: có 250tr người dùng SP! NetBook PC là 350tr 2013: dự báo các dòng desktop PC và NetBook PC sẽ bị SP vượt qua mặt với số lượng 650tr người dùng!

Tại sao phải lập trình trên thiết bị di động?

Thị trường thiết bị số & công nghệ lập trình trên thiết bị di động đang là mảnh đất màu mỡ để khai thác!

Page 13: lập trình di động

13

Do sự phát triển vượt bậc của thiết bị di động nhiều công ty PM trên máy tính chuyển hướng sang PM trên di động. rất nhiều công ty dự định tham gia trong lĩnh vực này!

Tại sao phải lập trình trên thiết bị di động?

Cần rất nhiều nhân lực cho việc phát triển ứng dụng trên

thiết bị di động

Page 14: lập trình di động

14

Theo Garner

Nền tảng nào đang phổ biến nhất?

Page 15: lập trình di động

15

Thị phần smartphone Q1-2013

Nền tảng nào đang phổ biến nhất?

Page 16: lập trình di động

16

Kể từ khi IPhone ra phiên bản đầu tiên 2007, cho đến nay đã là phiên bản 4. Tạo nên cơn sốt SP trên toàn cầu VN cũng ko ngoại lệ!Sự thành công của dòng máy iPod và thương hiệu Apple chính là nền tảng để IPhone trở thành SP mà ai cũng mong muốn!IPhone với thiết kế đẹp mắt, nhỏ gọn, giao diện dễ sử dụng và đặc biệt là màn hình cảm ứng mượt mà… lý do để giới trẻ lựa chọn.

Thị trường smartphone Việt Nam

Page 17: lập trình di động

17

Android xuất hiện chậm hơn (2008-2009).Không ồn ào, đình đám như IPhone, nhưng SP dùng Android lại hùng hậu về số lượng và kiểu dáng.

Do nhiều hãng sản xuất SP tham gia hỗ trợ Android: HTC, Samsung, LG, Sony Ericsson.Trong khi IPhone là sản phẩm của Apple, với thiết kế đơn nhất.

Nguyên nhân thành công của Android ở VNSố lượng người dùng Google đông.Tích hợp các dịch vụ Google trong nền tảng này giúp user khai thác và sử dụng thuận tiện hơn.Giới công nghệ đặc biệt ấn tượng với kho ứng dụng khổng lồ của Android (tương tự như AppStore)

Thị trường smartphone Việt Nam

Page 18: lập trình di động

18

Mặc dù Android có nhiều mẫu mã và giá tiền rẻ hơn hẳn so với IPhone, tuy nhiên, IPhone lại "ăn điểm" hơn Android về thương hiệu & kiểu dáng!

Thị trường smartphone Việt Nam

Page 19: lập trình di động

19

MOBILE APPLICATION

NATIVE APP, MOBILE WEB APP

Page 20: lập trình di động

20

Desktop App truy cập trên desktop và được install vào PCWeb app truy cập thông qua web browser, phải có kết nối internet/intranet để truy cập chúng.Mobile app là ứng dụng phát triển cho smartphone & tabletWeb app cho mobile là dạng ứng dụng web chạy trên trình duyệt dành cho mobile.Rõ ràng với sự gia tăng mạnh mẽ của Internet đã làm cho ứng dụng web ngày một phổ biến đe doạ thay thế desktop app (!?)Tuy nhiên 3 dạng ứng dụng trên đều có những ưu điểm nổi bật và sẽ cùng song hành tồn tại!

Desktop vs. Web vs. Mobile applications

Page 21: lập trình di động

21

Native app xuất hiện trước mobile web app sau khi có sự xuất hiện của mobile device.Nhưng chúng chỉ thật sự nổi bật và phát triển sau khi Apple giới thiệu AppStore.

Mang lại cơ hội phát triển ứng dụng cho 3rd party trên iOSUI cao cấp của IP và tích hợp khả năng thanh toán qua iTunes đã dẫn đến sự bùng nổ ứng dụng trên iOS

Mobile web app vs. Native app

Đây là tiền đề cho việc lập trình ứng dụng mobile phát triển mạnh mẽ cho đến ngày nay!

Page 22: lập trình di động

22

Mobile App là một phần mềm được viết cho một thiết bị di động như điện thoại hoặc tabletThực hiện một tác vụ đặc biệt cho một nhu cầu của user như:

game, lịch, trình chơi nhạc, tìm đường trên bản đồ Google map, ứng dụng quản lý…

Mobile app mang một khái niệm chung và rộng lớn cho tất cả các ứng dụng chạy trên thiết bị mobile (bao gồm native app và web app).

Mobile web app vs. Native app

Page 23: lập trình di động

23

Native App là một ứng dụng được thiết kế đặc biệt chỉ chạy trên một hệ điều hành của một thiết bị nào đó.Thường phải điều chỉnh để chạy được trên các thiết bị khác nhau.Mobile web app thì ứng dụng sẽ chạy trên trình duyệt của thiết bị di động đó.Một số web app dành cho mobile như: 

http://m.facebook.com,http://m.vnexpress.com, http://mobile.twitter.com

Mobile web app vs. Native app

Page 24: lập trình di động

24

Một native app phát triển trên IP sẽ chạy trên nền tảng độc quyền là iOS.Trên Nokia thì nền tảng sẽ là Symbian.Một web app trong trường hợp này thường được viết bằng ngôn ngữ cross platform:

để nhiều trình duyệt có thể chạy được như HTML và Javascript, ngoài ra còn có thể dùng Flash/Flex.

VD: Facebook native app hiện tại có mặt trên các app store như:Google market, Apple Store ...

User phải lên store/market tải về và cài đặt trên máy, ứng dụng được viết bằng native code cho riêng từng hệ điều hành sử dụng.

Mobile web app vs. Native app

Page 25: lập trình di động

25

Facebook Web app trong trường hợp này sẽ là:http://m.facebook.com. Chạy bằng trình duyệt của các OS trên.

Về mặt tính năng thì cả 2 hầu như giống nhau 90% trở lên.

Web app trên mobile có xu hướng phát triển về mặt giao diện và kỹ thuật càng giống với native app càng tốt. Tuy nhiên không phải những gì Native App làm được thì Web app cũng có thể (điều ngược lại ntn? ).

Mobile web app vs. Native app

Page 26: lập trình di động

26

Ưu điểm Native appDễ dàng thu phí và an toàn với các phương thức thanh tóan như iTunes và Google Checkout,

dễ dàng tiếp thị và chào bán trên các chợ ứng dụng như App Store và Google market

Mobile web app thì việc kinh doanh và thanh toán cho ứng dụng vẫn còn nhiều thủ tục, không nhất quán, không an toàn và không thúc đẩy mạnh mẽ tiêu dùngVề performance thì native app chạy nhanh hơn mobile app trong hầu hết trường hợp.

Tuy nhiên sự chênh lệch ở các ứng dụng có thể là nhỏ, chấp nhận được và khó nhận biết bởi người dùng.

Hiện tại, với dòng game thì native app vượt bậc và thắng tuyệt đối.

Mobile web app vs. Native app

Page 27: lập trình di động

27

Ưu điểm native appCó khả năng truy cập phần cứng (camera, thu âm,…), truy cập bộ nhớ mobile, thông tin contact, call, sms…Mobile web app thì ko có khả năng nàyCó khả năng chạy offline.

Nhược điểmKhông thể cross platform: một native app chỉ có thể chạy trên một hệ điều hành nhất định.Không nhất quán giữa các phiên bản ứng dụng, chi phí phát triển cao và đòi hỏi khả năng thành thạo nhiều ngôn ngữ. 

Mobile web app vs. Native app

Page 28: lập trình di động

28

Nhược điểmBảo trì hay nâng cấp sẽ làm mất nhiều thời gian. Do phải sửa chữa từng app trên từng OS.

Thủ tục đưa lên chợ ứng dụng và chờ đợi approval (đôi khi bị reject vì vi phạm một số điều lệ của nhà phát triển chợ ứng dụng), nên bản cập nhật không đến tay người dùng ngay lập tức.

Hơn nữa user phải tự update khi vào chợ ứng dụng.

Tính đa dạng phiên bản của OS làm cản trở việc phổ dụng các native app.

Các thiết bị chạy phiên bản OS cũ hơn sẽ không cài đặt được

Mobile web app vs. Native app

Page 29: lập trình di động

29

Ưu điểm của mobile web appCross platform: chạy trên mọi trình duyệt mobile hỗ trợ HTML & JSKhông cần cài đặt trên máyThuận lợi cho nhà phát triển

1 verson for all: giảm chi phí và thời gian cho việc phát triển, bảo trì & nâng cấp

Ngôn ngữ đơn giản HTML & JS

Không bị giới hạn môi trường lập trình

Cập nhật phiên bản sẽ đến ngay lập tức & trong suốt với người dùng.

Mobile web app vs. Native app