1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c net sử dụng xamarin framework

47 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên C# .NET sử dụng Xamarin Framework
Tác giả Đặng Thị Yến
Người hướng dẫn ThS. Trần Đức Thịnh, ThS. Bùi Hải Phong
Trường học Trường Đại Học Kiến Trúc Hà Nội
Chuyên ngành Công nghệ Thông tin
Thể loại Báo cáo thực tập tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 47
Dung lượng 6,26 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tuy nhiên dù mục đích của các doanh nghiệp khi phát triển ứng dụng di động là gì thì một vấn đề luôn hiện hữu là việc lựa chọn cách tiếp cận nào là tốt nhất cho họ - công cụ hay phương p

Trang 1

TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘI

KHOA: CÔNG NGHỆ THÔNG TIN

BÁO CÁO

THỰC TẬP TỐT NGHIỆP

Chủ đề: Nghiên cứu và phát triển ứng dụng đa nền tảng

trên di động dựa trên C# NET sử dụng Xamarin Framework

Đơn vị thực tập :Công ty CP H D

GVHD: ThS.Trần Đức Thịnh

ThS Bùi Hải Phong

Sinh viên thực hiện: Đặng Thị Yến

Lớp :17CN

Trang 2

MỤC LỤC

M C L C Ụ Ụ 2

M đầầu ở 4

N i dung ộ 6

1 Gi i thi u vềầ công ty CP HD ớ ệ 6

2 Nghiền c u ứ phát tri n ng d ng di đ ng đa nềần t ng ể ứ ụ ộ ả d a trền C# NET s d ng Xamarin ự ử ụ Framework 6 2.1 T ng quan vềầ Xamarin ổ 6

2.1.1.L ch s phát tri n ị ử ể 7

2.1.2 Đ c đi m n i b t ặ ể ổ ậ c a Xamarin ủ 8

2.1.3 Kiềến trúc c a Xamarin ủ 10

2.1.4 Cách ho t đ ng c a Xamarin ạ ộ ủ 11

2.1.5 u đi m và khuyềết đi m c a Xamarin Ư ể ể ủ 14

2.2 Môi tr ườ ng phát tri n ể 17

2.2.1 Cài đ t Xamarin.Android trền Windows: ặ 17

2.2.2 Cài đ t Xamarin.Android trền Mac: ặ 18

2.2.3 Cài đ t Xamarin.iOS trền Windows ặ 24

2.2.4 Cài đ t Xamarin.iOS trền Mac: ặ 32

2.3 Xầy d ng và th c thi ng d ng đầầu tền v i Xamarin ự ự ứ ự ớ 33

2.3.1 T o m t ng d ng Android (Android app) ạ ộ ứ ụ 33

2.3.2 T o m t ng d ng iOS (iOS app) ạ ộ ứ ụ 34

2.4 Tìm hi u vềầ mô hình l p trình MVVM( ể ậ (Model-View-ViewModel) 34

2.4.1 L ch s phát tri n ị ử ể 35

2.4.2 Mô hình MVVM là gì? 35

2.4.3. MVVM đ ượ c hi u nh thềế nào ể ư ? 36

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 3

2.4.3.1. View: 36

2.4.3.2. Model: 36

2.4.3.3. ViewModel: 36

2.4.4 Cầếu trúc th m c trong MVVM ư ụ 36

2.4.4.1 Views 37

2.4.4.2 Models 37

2.4.4.3 ViewModels 37

2.4.4.4 Data Binding 38

2.4.4.5 Data Template 38

2.4.4.6 Command 38

2.4.5 Ư u nh ượ c đi m c a MVVM: Model – View – ViewModel ể ủ 38

2.5 Tìm hi u vềầ cách th c ho t đ ng c a Restul API ể ứ ạ ộ ủ 39

2.5.1 Khái ni m Rest API là gì? Restul API là gì? ệ 39

2.5.1.1 Rest API là gì? 39

2.5.1.2 Restul API là gì? 40

2.5.1.3 API 40

2.5.1.4 REST 41

2.5.2 Cầếu trúc thiềết kềế c a Rest API là gì? ủ 41

2.5.3 Cách th c ho t đ ng c a Rest API là gì ? ứ ạ ộ ủ 42

2.5.4 Ư u đi m n i b t c a Restul API là gì ? ể ổ ậ ủ 43

2.5.5 Tìm hi u thềm vềầ Web API ể 44

3 Tri n khai Project ể d a ự trền C# NET s d ng Xamarin Framework ử ụ 45

Trang 4

Mở đầu

Ngày nay, hệ sinh thái di động đóng một vai trò rất quan trọng trong các chiến lược

kinh doanh của hầu hết các doanh nghiệp Các doanh nghiệp đều rất nghiêm túc trong việc

phát triển và phát hành các ứng dụng phục vụ mục đích kinh doanh của họ Tuy nhiên dù

mục đích của các doanh nghiệp khi phát triển ứng dụng di động là gì thì một vấn đề luôn

hiện hữu là việc lựa chọn cách tiếp cận nào là tốt nhất cho họ - công cụ hay phương pháp

nào nên được triển khai để họ có thể đưa ứng dụng của mình đến đúng khách hàng, đúng

thời điểm mà không cần quan tâm đến thiết bị, nền tảng người dùng cuối đang sử dụng

Tuỳ thuộc vào ứng dụng thì có các yêu cầu khác nhau về tính năng, trải nghiệm người

dùng, vòng đời sản phẩm, Có ứng dụng có vòng đời ngắn chỉ phục vụ một thời điểm nhất định như là các ứng dụng phục vụ các sự kiện; có ứng dụng lại có vòng đời rất dài, gắn liền

với sự tồn tại của doanh nghiệp; có ứng dụng yêu cầu tương tác nhiều với các thành phần

của thiết bị; có ứng dụng cần người dùng tương tác nhiều lên thiết bị, Tuy nhiên, tựu chunglại tất cả đều có một điểm chung: ứng dụng cần được xây dựng càng nhanh càng tốt, càng rẻ càng tốt và có thể chạy trên càng nhiều thiết bị càng tốt Để lựa chọn một chiến lược phát

triển ứng dụng tốt, các bên liên quan phải đánh giá đúng tiềm năng của ứng dụng, cân bằng

giữa những yêu cầu và khoảng thời gian cần thiết để đưa ứng dụng ra thị trường Sự phát

triển của mỗi nền tảng di động phụ thuộc rất nhiều vào trải nghiệm người dùng trên nền tảng

đó Apple chiếm được vị trí rất cao trong thị phần di động nhờ việc cung cấp cho người dùngtrải nghiệm đồng nhất với chất lượng cao

Tương ứng, các nhà phát triển ứng dụng đa nền tảng cũng phải hướng đến việc tạo ra

ứng dụng đáp ứng được yêu cầu của người dùng Trong khi trải nghiệm của người dùng trở

thành một mục tiêu chính của ứng dụng, thì có đến bốn đến năm nền tảng di động cần cân

nhắc phát triển: iOS, Android, BlackberryOS, Windows Phone và Mobile Web để đưa sản

phẩm của mình đến được với khách hàng Trong đó hai nền tảng được chú trọng nhiều nhất

là iOS và Android khi Blackberry và Microsoft đã dừng sản xuất các thiết bị chạy

BlackberryOS và Windows Phone Tất cả các hệ điều hành di động đều khác nhau về công

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 5

nghệ, ngôn ngữ lập trình, cách thức lập trình và tiếp cận thì lập trình viên cần sỡ hữu được

lượng kỹ năng đủ lớn để có thể có thể đưa sản phẩm đáp ứng được yêu cầu về độ phủ cũng

như tính đa dạng theo cách truyền thống Nếu như một ứng dụng cần phát triển trên nhiều

hơn một hoặc hai nền tảng, thì việc đưa ra một sản phẩm có trải nghiệm trung thành trên tất

cả các nền tảng sẽ tiêu tốn rất nhiều thời gian và công sức

Qua thời gian tìm hiểu thực tế để xác định đề tài thực tập, để giúp mọi người ( đặc biệt

là lập trình viên ) có cái nhìn rõ ràng hơn về các cách phát triển phần mềm ứng dụng di

động, đặc biệt là cách phát triển phần mềm ứng dụng di động đa nền tảng dựa trên C# NET,

sẽ giới thiệu cách tiếp cận trong việc phát triển ứng dụng di động dựa trên C# NET sử dụng Xamarin Framework

Phát triển phần mềm ứng dụng di động đa nền tảng là một trong những vấn đề quan

trọng và là thành phần không thế không thể thiếu để công ty có thể hoạt động và phát triển

Báo cáo thực tập có nội dung gồm 3 mục như sau:

1 Tổng quan về công ty CP HD

2 Nghiên cứu phát triển ứng dụng di động đa nền tảng dựa trên C# NET sử dụng

Xamarin Framework

3 Triển khai Project dựa trên C# NET sử dụng Xamarin Framework

Để hoàn thành báo cáo thực tập này trước hết em xin cảm ơn quý thầy, cô giáo trong

khoa Công Nghệ Thông Tin Trường Đại Học Kiến Trúc Hà Nội lời cảm ơn chân thành Đặc

biệt em xin gửi lời cảm ơn đến thầy: Trần Đức Thịnh và thầy: Bùi Hải Phong, những người

đã tận tình hướng dẫn, giúp đỡ em hoàn thành chuyên đề báo cáo thực tập này lời cảm ơn

sâu sắc nhất

Em xin chân thành cảm ơn Ban Lãnh Đạo, các phòng ban công ty CP HD , đã tạo điều kiện thuận lợi cho em được tìm hiểu thực tiễn trong suốt quá trình thực tập tại công ty

Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập này em không tránh khỏi

những sai sót, kính mong nhận được sự góp ý từ quý thầy cô cũng như quý công ty 5

Trang 6

Trân trọng cảm ơn!

Nội dung

1 Giới thiệu về công ty CP HD

Công ty CP HD Việt Nam có địa chỉ tại Quận Đống Đa, TP Hà Nội được bộ thông tin

và truyền thông cấp giấy phép thiết lập mạng xã hội ngày 26/01/2021 ngành nghề kinh

doanh chính là xuất bản phần mềm ngoài ra còn có một số ngành nghề như hoạt động dịch

vụ công nghệ thông tin và truyền thông

2 Nghiên cứu phát triển ứng dụng di động đa nền tảng dựa trên C# NET sử dụng Xamarin Framework

2.1 Tổng quan về Xamarin

Bộ khung phát triển ứng dụng đa nền tảng Xamarin, tiền thân là dự án mã nguồn mởMono, được giới thiệu vào ngày 16/5/2011 Xamarin ban đầu thuộc công ty Xamarin, tuy

nhiên đã được tập đoàn Microsoft mua lại vào 24/2/2016 Điều này đánh dấu một cột mốc

trong vòng đời của bộ khung phát triển này khi Microsoft tuyên bố sẽ mở mã nguồn của

Xamarin SDK, cung cấp nó như là một thành phần trong bộ công cụ Microsoft Visual

Studio Các người dùng đang sử dụng bộ công cụ Visual Studio dành cho doanh nghiệp cũng

sẽ được sử dụng các tính năng dành cho doanh nghiệp của Xamarin miễn phí Bên cạnh đó,

Microsoft cũng phát hành toàn bộ dự án Mono dưới giấy phép MIT và cũng phát hành toàn

bộ các phần mềm Xamarin SDK khác thông qua NET Foundation dưới giấy phép MIT

Xamarin là bộ khung phát triển ứng dụng cho phép các nhà phát triển xây dựng ứng dụng trên các nền tảng Android, iOS và Windows sử dụng một ngôn ngữ lập trình chính là

C# Xamarin cung cấp các lớp thư viện, runtime thực thi trên cả ba nền tảng iOS, Android vàWindows Phone, trong khi vẫn biên dịch native (không sử dụng các trình thông dịch) và đảmbảo hiệu suất ứng dụng kể cả các ứng dụng yêu cầu khả năng xử lý nặng như các ứng dụng

trò chơi Mặc dù không sử dụng các ngôn ngữ lập trình tương ứng trên các hệ điều hành

khác nhau nhưng Xamarin được xem như là một bộ khung phát triển ứng dụng gốc (native

framework) Trong việc phát triển ứng dụng di động, “nativeness" được định nghĩa là hệ sinh

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 7

thái mà các nhà cung cấp (Apple hoặc Google) chọn để phát triển ứng dụng trên hệ điều

hành của họ Một ví dụ là hệ điều hành Android Android là sự kết hợp giữa Linux và Java

SDK, Java sử dụng JNI để gọi các API C/C++ và cách Xamarin làm việc cũng hoàn toàn

tương tự Xamarin cũng sử dụng một bộ giao diện để tương tác với các API C/C++ được gọi

là PInvoke (Platform Invoke), một công nghệ NET(CLR, CLI) cho phép gọi các API gốc

bằng C# Một điều đặc biệt của Xamarin là nó có hỗ trợ một phần mở rộng có tên là

Microsoft's Razor Extension, cho phép các nhà phát triển xây dựng ứng dụng hybrid tận

dụng sức mạnh của nền tảng C# trong Xamarin

Xamarin cung cấp hai sản phẩm là Xamarin.iOS và Xamarin.Android Cả hai đều

được xây dựng dựa trên nền tảng Mono Đối với nền tảng iOS, trình biên dịch AOT biên

dịch ứng dụng iOS trực tiếp thành mã máy ARM Đối với nền tảng Android, trình biên dịch

của Xamarin biên dịch mã nguồn ứng dụng thành IL, sau đó trình biên dịch JIT của Android

sẽ chịu trách nhiệm biên dịch các đoạn mã IL thành mã máy khi ứng dụng chạy Trong cả haitrường hợp, ứng dụng Xamarin sẽ tối ưu thời gian chạy bằng cách tự động xử lý các vấn đề

liên quan đến quản lý bộ nhớ, thu dọn rác (garbage collection), các tác vụ bên trong nền tảng(platform interops),

2.1.1.Lịch sử phát triển

Xamarin được thành lập từ tháng 5/2011 từ dự án Mono Open source – một Platform

cho phép chạy Net trên tất cả các nền tảng :Linux, Android, iOS,…do Miguel de Icaza và

Nat Friedman sáng lập với cộng đồng khoảng 1,3 triệu lập trình viên, độc quyền sử dụng

công cụ của hãng, tạo nên các ứng dụng di động bằng C#, cho phép chạy cross-platform

(xuyên nền tảng) dành cho iOS, Android và Windows

Trang 8

Hình 1: Minh họa quá trình hình thành và phát triển của Xamarin

Tháng 03/2016, Miguel de Icaza- nhà đồng sáng lập Xamarin xác nhận Xamarin đã

chính thức sáp nhập với Microsoft

2.1.2 Đặc điểm nổi bật của Xamarin

- Liên kết với các SDK của các nền tảng

Xamarin cung cấp khả năng tương tác với hầu hết các SDK nền tảng của cả iOS và

Android Bên cạnh đó, các liên kết (bindings) này đều là liên kết mạnh, điều đó có nghĩa là

các API này dễ điều hướng và sử dụng Đảm bảo tối ưu thời gian biên dịch kiểm tra kiểu và

thời gian phát triển Điều này giúp làm giảm thiểu lỗi trong thời gian chạy và nâng cao chất

lượng của ứng dụng

- Tương tác với Objective-C, Java, C/C++

Xamarin cho phép tương tác với các thư viện Objective-C, Java, C và C++ trực tiếp

Điều này giúp cho các nhà phát triển có thể tận dụng sức mạnh của các thư viện của bên thứ

ba có sẵn trên các nền tảng iOS và Android được viết bằng Objective-C, Java hay C/C++

Bên cạnh, Xamarin còn cung cấp các dự án liên kết cho phép các nhà phát triển dễ dàng liên kết các thư việc Objective-C và Java sử dụng các cú pháp khai báo

- Sử dụng ngôn ngữ hiện đại

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 9

C# được xem như là một điểm nổi bật của Xamarin khi mà C# có khá nhiều điểm cải

tiến đáng chú ý so với các ngôn ngữ cũ hơn như Objective-C hay Java như là Dynamic

Language Features, Functional Constructs như là Lambdas, LINQ, Parallel Programming,

Generics, …

- Các lớp thư viện cơ bản

Các ứng dụng Xamarin có thể sử dụng một số lượng lớn các thư viện NET được xây

dựng sẵn cung cấp các tính năng mạnh mẽ như XML, Database, Serialization, IO, String và

Networking, … Bên cạnh đó, các đoạn mã C# có thể được biên dịch để có thể dùng trong

các ứng dụng, cung cấp khả năng truy cập hàng ngàn thư viện mà chưa được triển khai trongcác lớp thư viện cơ bản

- IDE hiện đại

Một IDE tốt sẽ giúp đỡ rất nhiều cho các nhà phát triển trong việc phát triển ứng

dụng Và Xamarin Studio trên Mac OS X hay Visual Studio trên Windows là một trong

những IDE tốt nhất hiện nay Nó cũng cấp rất nhiều tính năng cho nhà phát triển như tự độnghoàn thiện code, kiểm soát phiên bản (version control), quản lý dự án, các mẫu ứng dụng, …

- Hỗ trợ đa nền tảng di động

Xamarin hỗ trợ ba nền tảng di động phổ biến hiện nay là iOS, Android và Windows

Phone Các ứng dụng viết bằng Xamarin có thể chia sẻ tới 90% mã nguồn, và thư viện

Xamarin.Mobile cung cấp các API thống nhất để có thể sử dụng các tài nguyên trên tất cả banền tảng Điều này sẽ giúp tiết kiệm thời gian và công sức để đưa ứng dụng ra thị trường

hướng tới các nền tảng ứng dụng di động phổ biến nhất hiện nay

Xamarin hiện là bộ công cụ duy nhất có thể đưa một ngôn ngữ – C#, Class Library

và runtime chạy được trên cả 3 nền tảng di động là iOS, Android và Windows Phone

(Windows Phone mặc nhiên đã sử dụng C#) mà vẫn đảm bảo đủ hiệu suất thậm chí các đòi

hỏi của game

Trang 10

2.1.3 Kiến trúc của Xamarin

Hình 2:Mô hình kiến trúc của Xamarin

Một ứng dụng được xây dựng trên nền tảng Xamarin tiêu biểu có thể được chia thành

sáu tầng:

- Tầng dữ liệu: đảm bảo tính thống nhất và không xung đột của dữ liệu, trong các hệ

điều hành di động thì lớp này thường là các cơ sở dữ liệu SQLite

- Tầng truy xuất dữ liệu: cung cấp giao diện cho phép ứng dụng có thể thực hiện các

câu lệnh truy vấn vào cơ sở dữ liệu mà không làm lộ ra chi tiết cách các phương thức này

hoạt động cụ thể như thế nào

- Tầng nghiệp vụ (business) : là nơi chưa các logic của ứng dụng và các đối tượng

trong ứng dụng

- Tầng truy xuất dịch vụ: được sử dụng để truy xuất đến các dịch vụ trên đám mây ví

dụ như các dịch vụ web như là REST, JSON, WCF, … Lớp này sẽ đóng gói các hành vi

tương tác với các dịch vụ và cung cấp các API đơn giản để cho các tầng ứng dụng và giao

Trang 11

- Tầng giao diện: cung cấp giao diện cho ứng dụng bao gồm các màn hình, các thành

phần giao diện và các trình quản lý phụ trách xử lý chúng

Một ứng dụng không nhất thiết phải chứa tất cả các tầng này ví dụ như tầng truy

xuất dịch vụ sẽ không xuất hiện trong các ứng dụng không cần truy cập đến các tài nguyện

trên mạng hoặc là các ứng dụng đơn giản có thể gộp hai tầng dữ liệu và tầng truy xuất dữ

liệu lại với nhau

Về cơ bản, Xamarin cố gắng biến các thành phần thuộc các tầng dưới như là tầng

truy xuất dịch vụ, tầng nghiệp vụ, tầng truy xuất dữ liệu và tầng dữ liệu thành các thành phầndùng chung giữa các nền tảng trên một ứng dụng hoặc xa hơn là nữa là có thể sử dụng chunggiữa nhiều ứng dụng Ứng dụng Xamarin sẽ chạy trên một môi trường được gọi là Mono

Môi trường này sẽ chạy song song với các môi trường thời gian chạy trên từng nền tảng, cụ

thể ở đây là Objective-C Runtime hoặc Android Runtime (ART) Cả hai môi trường chạy

này sẽ chạy trên một nhân UNIX hoặc Linux và cung cấp rất nhiều API để cho các lập trình

viên có thể sử dụng các thành phần được quản lý hoặc các thành phần native trên các nền

tảng Ở đây các đoạn mã được quản lý là các đoạn mã được chạy dưới sự quản lý của bộ

khung Mono (ngôn ngữ trung gian), trong khi đó các đoạn mã native là các đoạn mã được

xử lý trực tiếp bởi môi trường native trên từng nền tảng Mỗi nền tảng có một cơ chế riêng

biệt cho phép các lập trình viên có thể truy cập vào các giao diện lập trình native thông qua

sự ràng buộc giữa các API trên Xamarin và API native

Khi một ứng dụng Xamarin được biên dịch, trình biên dịch Mono C# sẽ chạy và biên dịch các đoạn mã C# hoặc F# thành các đoạn mã trung gian MSIL Khi ứng dụng chạy trên

các nền tảng như Android, iOS hay OSX thì một thành phần được gọi là NET Common

Language Runtime sẽ biên dịch các đoạn mã MSIL sử dụng trình biên dịch JIT Trình biên

dịch JIT có trách nhiệm biên dịch các đoạn mã trung gian thành các đoạn mã native ngay tại thời điểm ứng dụng đang chạy trên từng nền tảng khác nhau

2.1.4 Cách hoạt động của Xamarin

Xamarin có hai sản phẩm chính Xamarin.iOS và Xamarin.Android, tất cả điều xây

dựng trên Mono, đó là phiên bản mã nguồn mở của FrameWork NET và được dựa theo tiểu 11

Trang 12

chuẩn của NET ECMA công bố Mono đã có lâu giống như NET và trên các Platfom:

Linux, Unix, FreeBSD, và Mac OS X

MonoTouch.dll and Mono.Android.dll: Xamarin đã được xây dựng với một tập hợp

con của NET BCL được gọi là hồ sơ Xamarin Mobile Hồ sơ này đã được tạo riêng cho các ứng dụng điện thoại di động và đóng gói thành MonoTouch.dll và Mono.Android.dll (tương ứng dành cho iOS và Android) Gần giống như cách ứng dụng Silverlight (and Moonlight)

xây dựng lại Trong thực tế Xamarin di động tương đương với Silverlight 4.0 các lớp BCL

được thêm Sau khi ứng dụng biên dịch thành công Ứng dụng sẽ đóng gói lại thành tập tin

có đuôi.apk cho Android và đuôi app cho iOS

Vòng đời phát triển phần mềm di động (Mobile Development SDLC): vòng đời phát

triển di động rất rộng không khác mấy so với vòng đời phát triền phần mềm cho ứng dụng

web hay ứng dụng cho máy tính cá nhân Thường vòng đời giành cho phần mềm di đông có

5 phần chính:

-Khởi tạo: tất cả ứng dụng đều bắt đầu từ một ý tưởng Ý tưởng đó sẽ tinh tế thành cơ

sở bềnh vững cho ứng dụng

-Thiết kế: Giai đoạn thiết kế bao gồm xác định trải nghiệm người dùng của ứng dụng

(UX) như: những gì bố trí chung là nó hoạt động, vv, cũng như các biến UX thành một thiết

kế giao diện người dùng (UI) phù hợp, thường là với sự giúp đỡ của một nhà thiết kế đồ họa.-Phát triển: Thông thường giai đoạn chuyên sâu tài nguyên nhất, đây là tòa nhà thực tế

của ứng dụng

-Ổn định: khi ứng dụng sắp hành thành QA thường bắt đầu kiểm tra ứng dụng và các

lỗi đã được khắc phục Thông thường, một ứng dụng sẽ đi vào giai đoạn beta có hạn, trong

đó một đối tượng người dùng rộng rãi hơn sẽ có cơ hội sử dụng nó và cung cấp phản hồi và

thông báo thay đổi

-Triển khai: thường thì các giai đoạn phát triển được triển khai chồng lên nhau Như:

giai đoạn phát triển được bắt đầu trong khi giai đoạn thiết kế sấp hoàn thành Ngoài ra ứng

dụng đã tời giai đoạn ổn định nhưng vần cần thêm vẫn cần thêm mới chưc năng

Những lưu ý khi phát triển di động chúng ta cần quan tâm đến tính đa nhiệm, kích cỡ

của thiết bị, loại thiết bị, loại hệ điều hành và giới hạn tài nguyên:

-Đa nhiệm: có 2 khó khăn quan trọng để sử dụng đa nhiệm trên thiết bị di động Đầu

tiên là giới hạn số màn hình để hiện thị nhiều ứng dụng cùng lúc cho nên thiết bị di động chỉ

có thể chạy tại một thời điểm Thứ hai có nhiều ứng dụng đang chạy và cần nhiều tài nguyêngây tốn pin cho thiết bị

-Kích cỡ thiết bị: thiết bị di động thường là điện thoại hoặc máy tính bảng, điện thoại bịgiới hạn về không gian màn hình còn máy tình bảng thì lớn những cả hai điều nhỏ so với

laptop Vì thế giao diện người dùng cần phải thiết kế đặc biệt để phù hợp với màn hình điện

Trang 13

không làm việc trên thiết bị khác Ví dụ không phải điện thoại nào cũng có camera trước nếuchúng ta xây dựng ứng dụng chat video một số thiết bị sẽ cũng không sử dụng được Trong

khi thiết kế giao diện ứng dụng cần chú ý đến kích thước, tỷ lệ màn hình của thiết bị Ngoài

ra bạn cần phải cân nhắc tới độ phân giải của thiết bị Trong giai đoạn phát triển, khi bạn viếtmột chức năng bạn cần phải kiểm tra chức năng đó đầu tiên Ví dụ khi cần sử dụng chức

năng trên thiết bị như camera đầu tiên cần phải yêu cầu sử dụng chức năng đó và sau đó

chức năng đang yêu cầu phải được hệ điều hành hỗ trợ cuối cùng là thiết lập cài đặt Kiểm

tra là bước rất quan trọng, nên kiễm tra ứng dụng càng sớm và thường xuyên trên máy thật

-Giới hạn tài nguyên: thiết bị di động có rất nhiều và mạnh hơn Những điều bị giới

hạn hiệu năng so với máy tính cá nhân ví dụ: khi phát triển các ứng dụng cho máy tính cá

nhân thường không quan tâm đến dung lượng bộ nhớ vì vừa có thể sử dụng bộ nhớ thật với

bộ nhớ ảo những đối với thiết bị di động chúng ta có thể sử dụng tất cả bộ nhớ trống để tải

một ảnh chất lượng cao Ngoài ra các ứng dụng cần bộ xử lý nhanh: như game có thể là gánhnặng cho CPU ảnh hưởng đến hiệu năng của thiết bị Những lưu ý khi phát triển ứng dụng

trên nền tảng hệ điều hành Windows Phone như đa nhiệm, khả năng thiết bị, cơ sở dữ liệu vàbảo mật

- Đa nhiệm: đa nhiệm của Windows Phone cũng giống với iOS và Android vòng đời

của một trang, ứng dụng và chạy nền Mỗi màn hình trong ứng dụng là một thể hiện của lớp

trang Trong đó mỗi sự kiện được liên kết với 1 hoạt động hoặc không

- Khả năng thiết bị: mặc dù phần cứng của Windows Phone khá đồng đều vì sự ràng

buộc của Microsoft những vẫn có các tùy chỉnh về cầu hình nên bạn cần phải xem xét để

tương thích với các thiết bị, cấu hình tùy chọn cho Windows Phone: máy ảnh, la bàn, con

quay hồi chuyển

- Cơ sở dữ liệu: trong khi iOS và Android hỗ trợ cơ sở dữ liệu SQLite để lưu trữ dữ

liệu Windows Phone 7 lại không hỗ trợ trong khi Windows phone 7.1 và 8 chỉ có thể sử

dụng với LINQ to SQL và không hỗ trợ Transact-SQL Nhưng bạn có thể sử dụng mã nguồn

mở của SQLite để thêm vào ứng dụng

- Bảo mật: ứng dụng khi cần sử dụng phần cứng của thiết bị hay chức năng của hệ điềuhành cần phải yêu cầu quyền đó với Manifest (giống với Android).Một số lưu ý để phát triểnứng dụng Android như đa nhiệm, nhiều thiết bị, bảo mật

- Đa nhiệm trong Android có hai phần: đầu tiền là vòng đời của Activity Mỗi màn hìnhtrong ứng dụng Android là một Activity và là chổ tập hợp các sự kiện khi ứng dụng đang

chạy nền hoặc đang chạy Thứ hai để sử dụng được đa nhiệm trong Android ta cần phải sử

dụng dịch vụ Dịch vụ sẽ hoạt đông liện tục và tồn tại độc lập với ứng dụng được sử dụng đểthực hiện các quá trình trong khi ứng dụng đang chạy nền

- Nhiều thiết bị không giống như iOS có rất ít thiết bị hay các thiết bị Windows Phone

phải đáp ứng các yêu cầu tối thiểu Google áp đặt giới hạn cho các thiết bị có thể chạy

Android OS

Trang 14

- Bảo mật trong lập trình ứng dụng Android đều chạy một cách riêng biệt Lưu ý trong

khi phát triển khi phát triển ứng dụng trên hệ điều hành iOS: đa nhiệm trong iOS đa nhiệm

được điều khiển rất chặt chẻ

2.1.5 Ưu điểm và khuyết điểm của Xamarin

- Ưu điểm

Về cơ bản, Xamarin miễn phí cho tất cả mọi người Xamarin được tích hợp sẵn trong các phiên bản Visual Studio trên các nền tảng Windows và Mac Xamarin cung cấp ba tuỳ

chọn bản quyền tương ứng với ba tuỳ chọn bản quyền cho Visual Studio Phí được tính vào

các dịch vụ đi kèm với các phiên bản Visual Studio

Đa nền tảng: Xamarin sử dụng C# và XAML cho tất cả các nền tảng hỗ trợ Trong

điều kiện lý tưởng, 96% các đoạn mã có thể sử dụng chung cho cả ba nền tảng nếu sử dụng

Xamarin.Forms Xamarin.Forms cung cấp hơn 40 các thành phần giao diện và điều khiển,

được xây dựng sẵn và tự động điều chỉnh phù hợp trên mỗi nền tảng vào thời gian chạy

Xamarin cho phép các nhà phát triển viết các thư viện có thể sử dụng giữa các nền

tảng khác nhau hoặc các dự án khác nhau Những thư viện này được gọi là Portable Class

Library Các nhà phát triển có thể xây dụng một phần logic ứng dụng hoặc các lớp dịch vụ

thành các thư viện và sử dụng chúng giữa các nền tảng khác nhau Xamarin cũng có một số

các PCL có sẵn rất thông dụng như SQLite, Json.NET hooặc ReactiveUI trên mọi nền tảng

Bên cạnh lợi ích về có thể tái sử dụng các đoạn mã có sẵn, PCL còn mang lại lợi ích trong

việc sử dụng kiểm thử đơn vị và cấu trúc lại mã nguồn, giúp cho việc thay đổi mã nguồn haytối ưu sẽ trở nên dễ dàng hơn

Không như các cách tiếp cận truyền thống dựa trên nền tảng web, các ứng dụng

được xây dựng dựa trên Xamarin có thể được coi là một ứng dụng native Hiệu năng của cácứng dụng Xamarin có thể so sánh được với các ứng dụng được viết bằng Java trên Android

và Objective-C/Swift trên iOS Hơn thế nữa, hiệu suất ứng dụng cũng liên tục được cải tiến

để đáp ứng được các tiêu chuẩn của các ứng dụng native Xamarin cũng cung cấp các giải

pháp hoàn thiện cho việc kiểm tra và theo dõi hiệu suất ở ứng dụng Đó là Xamarin Test

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 15

Cloud kết hợp với Xamarin Test Recorder cho phép các nhà phát triển thực hiện các bài

kiểm thử giao diện tự động và xác định các vấn đề về hiệu suất trước khi phát hành Tuy

nhiên các dịch vụ này là các dịch vụ mất phí

Xamarin cho phép các nhà phát triển tạo ra một trải nghiệm hoàn hảo cho mỗi nền

tảng bằng cách sử dụng các thành phần riêng trên mỗi nền tảng Đối với các ứng dụng sử

dụng Xamarin.Forms thì công cụ này sẽ chịu trách nhiệm chuyển đổi các thành phần giao

diện thành các thành phần giao diện riêng trên từng nền tảng vào thời điểm chạy Việc sử

dụng Xamarin.Forms sẽ tăng tốc độ phát triển ứng dụng mặc dù việc sử dụng nó cũng sẽ gây

ra một số sự suy giảm về hiệu năng bởi vì chúng ta cần một tầng ảo để làm trung gian cho

việc chuyển đổi Đối với các ứng dụng phức tạp cần tuỳ biến nhiều và yêu cầu hiệu năng

cao, các nhà phát triển nên sử dụng riêng biệt Xamarin.iOS và Xamarin.Android để phát

triển Sự thân thiện của Xamarin đối với các nền tảng không chỉ dừng lại ở việc hiệu suất

của ứng dụng mà còn mở rộng đến việc hỗ trợ các phần cứng khác nhau Xamarin loại bỏ tất

cả các vấn đề tương thích phần cứng khi sử dụng một bộ code cho nhiều nền tảng các nhau

bằng cách sử dụng các API riêng biệt và trình cắm Bên cạnh đó, Xamarin còn cung cấp khả năng sử dụng các thư viện native, tạo sự linh hoạt trong việc tuỳ biến và sử dụng các chức

năng native mà không phát sinh thêm nhiều chi phí

Một điểm mạnh nữa của Xamarin là khả năng của C#, ngôn ngữ chính để phát triển

ứng dụng trong Xamarin C# là một ngôn ngữ hiện đại được phát triển dựa trên C++ C#

được cộng đồng phát triển đánh giá là một trong những ngôn ngữ tốt nhất với rất nhiều lợi

thế khi so sánh với các ngôn ngữ khác như type safety, Linq, lamda expression,

async-await, Bên cạnh đó C# còn là một ngôn ngữ mà nguồn mở và được sử dụng trong nhiều

phần mềm hay nền tảng khác như Net, Mono, Unity,

Xamarin được phát hành kèm với các phiên bản Visual Studio, một trong những IDEtốt nhất hiện nay Một IDE tốt hỗ trợ rất nhiều cho các nhà phát triển trong quá trình phát

triển Bên cạnh đó Xamarin còn có một số các dịch vụ hữu ích để hỗ trợ các nhà phát triển

như Profiler hoặc Xamarin Test Cloud dù không miễn phí

Trang 16

Có một sự thật là hiện nay với các bộ khung phát triển phần mềm đa nền tảng thì

việc một mã nguồn chạy trên nhiều nền tảng chưa bao giờ đạt đến sự hoàn hảo Hầu hết các

ứng dụng để kinh doanh đều yêu cầu phải tuỳ biến cho từng nền tảng và các nhà phát triển

thường xuyên phải viết các đoạn mã riêng biệt cho từng nền tảng để đảm bảo trải nghiệm

người dùng hoàn hảo trên mỗi nền tảng Xamarin.Forms cũng tương tự, nó không thể hoàn

toàn đáp ứng được yêu cầu của ứng dụng Bên cạnh đó có rất nhiều thành phần trong các nềntảng mà Xamarin.Forms không hỗ trợ

Bản thân Xamarin hoạt động trên hai nền tảng iOS và Android tồn tại những hạn

chế riêng về mặt kĩ thuật Các hạn chế này thường đến từ sự khác biệt về ngôn ngữ phát triển

và cách hoạt động giữa Xamarin và các nền tảng, ở đây thường là cách các trình biên dịch

hoạt động Điều này đồng nghĩa với việc một số tính năng có trong C# thì sẽ không hoạt

động trên iOS hoặc Android Chi tiết về các hạn chế kĩ thuật này được Xamarin cung cấp

đầy đủ trên trang chủ

Tồn tại một số vấn đề nữa của Xamarin đến từ chính bản thân nó Xamarin cố ánh xạtất cả các API native thành API của Xamarin và vấn đề ở đây là điều này không phải lúc nào cũng hoạt động tốt Xamarin tạo ra một layer để tương tác với môi trường native trên các

nền tảng Tuy nhiên điều này kết hợp với Xamarin AOT compiler gây ra một vấn đề là nhà

phát triển không thực sự kiểm soát được cái được tạo ra như là đoạn mã cuối cùng để chạy

trên thiết bị

Bên cạnh đó, một trong những vấn đề của Xamarin là lỗi của chính bộ khung phát

triển Ví dụ nhiều nhà phát triển phàn nàn về việc rò rỉ bộ nhớ xảy ra rất thường xuyên trên

các ứng dụng iOS được phát triển bằng Xamarin Lý do cho điều này được phỏng đoán là

do sự không đồng bộ giữa hai cơ chế giải phóng bộ nhớ của Xamarin là Garbage Colection

và cơ chế Automatic Reference Counting trên iOS Khá may mắn là đây là một vấn đề khá

nghiêm trọng và thu hút được một số lượng lớn các nhà phát triển quan tâm Và vấn đề này

đã được phải quyết bằng cách viết một phương thức bổ sung để duyệt đệ quy qua toàn bộ

phần tử và các đối tượng được liên kết để giải phóng chúng lần lượt Tuy nhiên không phải

vấn đề nào cũng dành được sự quan tâm to lớn như thế này Có khá nhiều các nhà phát triển

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 17

đưa lên các vấn đề trong việc phát triển ứng dụng của họ mà lỗi được xác định không phải

do đoạn mã của họ mà lỗi xuất phát từ chính bản thân Xamarin

Các ứng dụng phát triển bởi Xamarin thường bị phình to ra hơn so với các ứng dụng native Để so sánh thì các ứng dụng Xamarin thường chiếm nhiều hơn một vài MB so với

các ứng dụng Objective-C/Java thông thường Và nếu càng dùng nhiều API thì càng tốn

nhiều dung lượng hơn Điều này có thể gây khó khăn cho người dùng cuối khi cài đặt ứng

dụng và yêu cầu nhiều bộ nhớ hơn trên thiết bị

2.2 Môi trường phát triển

Chúng ta có thể phát triển ứng dụng trên môi trường Windows khi cài đặt Xamarin

Studio hoặc Visual Studio để làm trình soạn thảo phát triển ứng dụng Nếu ứng dụng hướng

đến các thiết bị iOS thì bạn cần phải có một máy Mac, có cài đặt Xcode và kèm theo

Xamarin Studio cho nền tảng iOS Cụ thể như sau:

2.2.1. Cài đặt Xamarin.Android trên Windows:

Để cài đặt Xamarin trên Visual Studio 2017, các bạn chỉ cần:

Mở Visual Studio Installer lên

Chọn mục này như hình khi cài đặt/chỉnh sửa

Sau khi cài đặt xong, các bạn có thể mở Visual Studio 2017 lên và chọn Visual C#, các bạn sẽ thấy 2 mục là Android và iOS

Trang 18

Tạo Project đầu tiên:

Các bạn chỉ cần New Project => Android => Blank App

Tạo xong thì cứ chạy thử(nhớ cài đặt máy ảo hoặc cài luôn Visual Studio Emulator

trong VS Installer) Nếu chạy được máy ảo và app hiện ra Có nghĩa là ta đã cài thành công

và có thể tiếp tục sử dụng Xamarin tiếp Còn nếu bạn nào chưa cài được thì hãy gỡ toàn bộ

Visual ra và cài lại

2.2.2. Cài đặt Xamarin.Android trên Mac:

Bước 1: Tải tập tin cài đặt Xamarin theo đường link sau:

https://www.xamarin.com/download

Bước 2: Chạy tập tin đã tải về ở bước 1 để cài đặt Xamarin

Nhấp đút vào logo Xamagon để bắt đầu cài đặt ứng dụng:

Hình 3:Cài đặt Xamarin.Android trên Mac

Nếu xuất hiện hộp thoại tương tự hình bên dưới thì chọn “Open”:

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 19

Hình 4: Cài đặt Xamarin.Android trên Mac

Bước 2.1: Xamarin License

Chọn “I agree to license terms” và nhấn “Continue”:

Hình 5: Cài đặt Xamarin.Android trên Mac

Bước 2.2: Xác định các thành phần được yêu cầu

Trang 20

Chọn các thành phần (thư viện) cần sử dụng để tải về và cài đặt, sau đó chọn

“Continue”:

Hình 6: Cài đặt Xamarin.Android trên Mac

Chú ý: Để cấu hình proxy, bạn mở Application -> System Preferences.app và chọn biểutượng Network Tiếp theo, chọn mạng giao tiếp phù hợp và nhấn nút “Advanced” Cuối

cùng, chúng ta cấu hình Proxies như hình sau:

Hình 7:Cấu hình Proxy

Bước 3: Cài đặt các thành phần đã chọn

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 21

Sau khi chọn các thành phần được yêu cầu, chương trình sẽ tự tải về và cài đặt các

thành phần đã chọn:

Hình 8:Cài đặt các thành phần

Chọn “Continue” để tiếp tục quá trình cài đặt:

Trang 22

Hình 9: Cài đặt các thành phần

Hình 10:Cài đặt các thành phần

Bước 4: Hoàn thành quá trình cài đặt

ĐẶNG THỊ YẾN – BÁO CÁO THỰC TẬP TỐT NGHIỆP

Trang 23

Kết quả sau khi hoàn thành quá trình cài đặt:

Hình 11:Kết quả sau khi cài đặt thành công Xamarin.Android trên Mac

Chọn nút “Launch Xamarin Studio” để bắt đầu phát triển một ứng dụng

Xamarin.Android

Bước 5: Kích hoạt Xamarin Trước hết, bạn phải đăng nhập vào tài khoản Xamarin

bằng cách nhấn nút “Log In” trên màn hình “Welcome Screen” và điền vào tên tài khoản và

mật khẩu của bạn để chứng thực Nếu chưa có tài khoản Xamarin, bạn có thể đăng ký tài

khoản Xamarin theo đường link sau: https://store.xamarin.com/account/register

Ngày đăng: 31/07/2023, 09:50

HÌNH ẢNH LIÊN QUAN

Hình 1: Minh họa quá trình hình thành và phát triển của Xamarin - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 1 Minh họa quá trình hình thành và phát triển của Xamarin (Trang 8)
Hình 2:Mô hình kiến trúc của Xamarin - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 2 Mô hình kiến trúc của Xamarin (Trang 10)
Hình 3:Cài đặt Xamarin.Android trên Mac - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 3 Cài đặt Xamarin.Android trên Mac (Trang 18)
Hình 4: Cài đặt Xamarin.Android trên Mac - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 4 Cài đặt Xamarin.Android trên Mac (Trang 19)
Hình 5:  Cài đặt Xamarin.Android trên Mac - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 5 Cài đặt Xamarin.Android trên Mac (Trang 19)
Hình 7:Cấu hình Proxy - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 7 Cấu hình Proxy (Trang 20)
Hình 6: Cài đặt Xamarin.Android trên Mac - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 6 Cài đặt Xamarin.Android trên Mac (Trang 20)
Hình 8:Cài đặt các thành phần - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 8 Cài đặt các thành phần (Trang 21)
Hình 10:Cài đặt các thành phần - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 10 Cài đặt các thành phần (Trang 22)
Hình 11:Kết quả sau khi cài đặt thành công Xamarin.Android trên Mac - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 11 Kết quả sau khi cài đặt thành công Xamarin.Android trên Mac (Trang 23)
Hình 12:Đăng nhập tài khoản Xamarin từ màn hình Welcome Screen - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 12 Đăng nhập tài khoản Xamarin từ màn hình Welcome Screen (Trang 24)
Hình 13:Kết quả kích hoạt thành công - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 13 Kết quả kích hoạt thành công (Trang 24)
Hình 14: Mô hình minh họa quy trình phát triển ứng dụng đơn giản của Xamarin.iOS - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 14 Mô hình minh họa quy trình phát triển ứng dụng đơn giản của Xamarin.iOS (Trang 25)
Hình 15:Cho phép Remote Login trên Mac - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 15 Cho phép Remote Login trên Mac (Trang 27)
Hình 16:Kết nối Xamarin với máy Mac - Báo cáo thực tập tốt nghiệp chủ đề nghiên cứu và phát triển ứng dụng đa nền tảng trên di động dựa trên c  net sử dụng xamarin framework
Hình 16 Kết nối Xamarin với máy Mac (Trang 27)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w