CHƯƠNG 1. TỔNG QUAN VỀ NỘI DUNG NGHIÊN CỨU 1. Giới thiệu chung Hiện nay, việc sắp xếp công việc một cách khoa học hiệu quả không bị chồng chéo, đúng thời gian, tiến độ là vô cùng quan trọng khi hằng ngày phải đối mặt với khối lượng công việc lớn. Vì vậy, cần có giải pháp giúp cho việc quản lý công việc của con người được dễ dàng và hiệu quả hơn.
Nhờ vào sự phát triển các ứng dụng vô cùng phong phú và hiệu quả của điện thoại thông minh đã tạo ra những tiện ích của nó giúp con người giải quyết những khó khăn, dần trở thành một công cụ không thể thiếu của con người. Từ thực tế đó ứng dụng nhắc nhở ra đời để đáp ứng nhu cầu quản lý công việc, tạo nhắc việc cho cá nhân tăng hiệu quả công việc và tạo ra lịch làm việc khoa học. Tổng quan về lập trình di động Hiện nay có 3 hướng chính xây dựng và phát triển 1 ứng dụng di động là: Native app, Web App và Hybrid app. Mỗi hướng đều có ưu và nhược điểm và kỹ năng riêng.
Hybrid App Hybrid App là ứng dụng kết hợp của cả Mobile Web App và Native App. Theo đó, các phần cơ bản của ứng dụng vẫn viết bằng ngôn ngữ web, nhưng được đặt trong native container, nên vẫn có thể đưa lên các App Store. Ưu điểm: o Chỉ cần có kiến thức về HTML, CSS, JavaScript … o Viết một lần dùng được nhiều nơi. o Tận dụng được các chức năng của hệ thống.
o Có thể chạy được ở chế độ offline Nhược điểm: DO.IOS Tieu luan DO.IOS 4 o Hiệu năng chậm o Không ổn định do khó debug. Framework sẽ dịch code thành code native sửa lỗi khá khó khăn không biết được dịch như thế nào 1. Native App Native App là những ứng dụng được viết riêng cho một loại nền tảng như iOS, Android, Windows Phone bằng các ngôn ngữ tương ứng của mọi nền tảng đó ví dụ Java trên Android, Object C trên iOS. Mỗi Native App chỉ chạy được trên một nền tảng và không thể mang sang các nền tảng khác Ưu điểm: o Tận dụng được tính năng có sẵn trên thiết bị như: GPS, Camera, thiết bị thu âm.
o Hiệu năng cao vì code native chạy trực tiếp trên máy o Có thế chạy được ở chế độ offline Nhược điểm: o Không thể kết hợp nhiều nền tảng. Mỗi một ứng dụng chỉ chạy trên 1 nền tảng nhất định o Mỗi hệ điều hành cân phải viết ứng dụng riêng khó đồng bộ giữa các ứng dụng o Việc bả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 hệ điều hành o Xây dựng ứng dụng cần dùng các phần mềm riêng biệt theo hệ điều hành (dùng Xcode trên Mac để phát triển ứng dụng IOS, Android Studio để phát triển ứng dụng Android) DO.IOS Tieu luan DO. Web App Web app được phát triển khi đã có sẵn một website đang hoạt động.
Ta tạo thêm một trang web riêng cho các thiết bị di động sử dụng HTML, CSS và một số thư viện khác hỗ trợ. Web app được thiết kế chạy trên nền tảng web hoặc các trình duyệt của thiết bị di động cho phép người dùng thao tác như thao tác trang web giống nhu thao tác ứng dụng. Ưu điểm: o Có thể chạy trên tất cả trình duyệt của mobile hỗ trợ phiên bản HTML và javascript o Không cần cài đặt trên máy miễn là máy có trình duyệt web o Một phiên bản duy nhất cho tất cả, nên giảm chi phí và thời gian cho phát triển, bảo trì, cũng như nâng cấp sau này. o Phiên bản được cập nhật liên tục không cần phải cập nhật trên chợ Nhược điểm: o Hiệu năng không được tốt như native app và luôn phải chạy online.
o Không thể dùng được các tính năng tích hợp của di động: Notification, chụp hình, nghiêng máy, định vị GPS, các sensor… o Với một số máy đời cũ, Web app sẽ bị vỡ giao diện, hiển thị sai, hoặc javascript không chạy. Giới thiệu công cụ lập trình Xcode Xcode là bộ phát triển phần mềm tích hợp được Apple phát triển chạy trên hệ điều hành Mac để các lập trình viên có thể phát triển phần mềm chạy trên hệ điều hành Mac và iOS. Phiên bản đầu tiên của Xcode được phát hành vào năm 2003 và phiên bản ổn định hiện tại là 12.1 được phát hành vào năm DO.IOS Tieu luan DO.IOS 6 ngày 21 tháng 6 năm 2021. Xcode được phát hành miễn phí cho người dùng Mac download thông qua chợ ứng dụng App Store.
Ngôn ngữ lập trình Swift Swift là một ngôn ngữ lập trình hướng đối tượng dành cho việc phát triển iOS và macOS, watchOS, tvOS được giới thiệu bởi Apple tại hội nghị WWDC 2014. Swift được mong đợi sẽ tồn tại song song cùng Objective- C, ngôn ngữ lập trình hiện tại dành cho các hệ điều hành của Apple. Swift được thiết kế để hoạt động với các framework Cocoa và Cocoa Touch của Apple và phần lớn mã Objective-C. Nó được biên dịch với trình biên dịch LLVM và đã được đưa vào Xcode kể từ phiên bản 6, phát hành năm 2014.
Trên các nền tảng của Apple, nó sử dụng thư viện runtime Objective-C cho phép mã C, Objective-C, C++ và Swift cùng chạy trong một chương trình. Apple dự định Swift hỗ trợ nhiều khái niệm cốt lõi liên quan đến Objective-C, đáng chú ý là thu hồi động, các ràng buộc phổ thông, ập trình mở rộng và các tính năng tương tự, nhưng theo cách "an toàn hơn", giúp dễ dàng bắt lỗi phần mềm hơn. Swift có các tính năng giải quyết một số lỗi lập trình phổ biến như con trỏ rỗng cung cấp cú pháp đặc biệt để giúp tránh kim tự tháp diệt vong. Swift hỗ trợ khái niệm về khả năng mở rộng giao thức, một hệ thống mở rộng có thể được áp dụng cho các kiểu, cấu trúc và lớp, mà Apple khuyến khích như một sự thay đổi thực sự trong mô hình lập trình mà họ gọi là "lập trình hướng giao thức" (tương tự như đặc điểm).
Swift được giới thiệu tại Worldwide Developers Conference (WWDC) 2014 của Apple. Nó đã trải qua quá trình nâng cấp lên phiên bản 1.2 trong năm 2014 và nâng cấp lớn hơn cho Swift 2 tại WWDC 2015. Ban đầu, ngôn ngữ độc quyền, phiên bản 2.2 được được chuyển sang phần mềm nguồn mở theo Giấy phép Apache 2.0 vào ngày 3 tháng 12 năm 2015, dành cho các nền tảng của Apple và Linux. Thông qua phiên bản 3.0, cú pháp của Swift đã trải DO.IOS qua quá Tieu luan DO.IOS 7 trình phát triển quan trọng, với nhóm nòng cốt làm cho sự ổn định nguồn trở thành trọng tâm trong các phiên bản sau.
Trong quý đầu tiên của năm 2018, Swift đã vượt qua Objective-C về mức độ phổ biến.0, được phát hành vào năm 2017, đã giới thiệu một số thay đổi đối với một số lớp và cấu trúc tích hợp. Mã được viết bằng các phiên bản trước của Swift có thể được cập nhật bằng chức năng di chuyển được tích hợp trong Xcode Vào tháng 3 năm 2017, chưa đầy 3 năm sau khi chính thức ra mắt, Swift đã đứng đầu trong bảng xếp hạng TIOBE hàng tháng về các ngôn ngữ lập trình phổ biến nhất. Một tài liệu 500 trang về Swift cũng được phát hành tại WWDC, miễn phí trên iBooks Store. Ưu điểm: - Khả năng phát triển ứng dụng di động nhanh và dễ dàng: Các lập trình viên không phải mất công chạy các chương trình compiler và các chương trình test một cách thường xuyên nữa, mà thay vào đó tập trung vào các phần tích hợp với mức độ khó hơn.
Điều này cũng giúp tiết kiệm sức mạnh và sự hao mòn của phần cứng cho các nhà phát triển. Ngoài ra, Swift là một trong những ngôn ngữ lập trình mang lại nhiều tính năng quan trọng như: không xảy ra lỗi array-out- of-bound, không có biến xác định, quản lý bộ nhớ theo phương thức tự động,. từ đó tiết kiệm được tối đa thời gian hơn để hoàn thành một dự án. - Code ngắn gọn, dễ đọc, dễ hiểu: Điều này giúp cho các lập trình viên tiết kiệm rất nhiều thời gian hoàn thành dự án, cũng như tăng hiệu quá trong quá trình bảo trì và fix các lỗi bug trong tương lai.
Swift kế thừa và phát huy tất cả các sức mạnh của Objective-C để lại, nên các nhà lập trình sẽ có một môi trường runtime quen thuộc tuyệt vời, dễ dàng quản lý và phát triển.IOS Tieu luan DO.IOS 8 - Tốc độ thực thi của các đoạn mã swift nhanh: Theo apple, Swift nhanh gấp 8 lần python. Không những nhanh, mà Swift còn rất mạnh mẽ, giúp cho các nhà lập trình có thể viết được những đoạn mã nâng cao, phức tạp hơn như: generics, closures, tuples, multiple returns, iterators, các mẫu lập trình hàm có sẵn và nhiều hơn thế nữa. - Swift có thể dùng cho tất cả các hệ điều hành của Apple phát hành như macOS, iOS, tvOS, watchOS,… 1. Một số framework trong lập trình Swift 1.
UIKit UIKit framework cung cấp một số class để tạo các tác vụ chạm (touch- based) cho giao diện người dùng, tất cả các ứng dụng iOS đều xây dựng dựa trên UIKit, nhà phát triển không thể xây dựng ứng dụng mà không sử dụng framework này. UIKit cung cấp cơ sở hạ tầng cho việc vẽ các giao diện trên màn hình, điều khiển các sự kiện, tạo ra các thành phần giao diện của ứng dụng. UIKit cũng tổ chức các ứng dụng phức tạp bằng việc quản lý nội dung ứng dụng để hiện thị lên màn hình. UIDynamics là 1 phần quan trọng trong UIKit được apple tích hợp từ năm 2007 cùng với sự xuất hiện của iOS 7.
Bằng cách sử dụng UIKit Dynamics, lập trình viên có thể tạo ra các view với những tương tác vật lý như trọng lực, móc nối, va chạm, nảy lên(sau va chạm),. giữa các đối tượng với các thành phần chính: UIDynamicItem protocol, Dynamic behaviors, Dynamic animator. Core graphics Core graphics là một framework cấp độ thấp, dựa trên ngôn ngữ lập trình C, chịu trách nhiệm điều khiển các vector đồ họa chất lượng cao, các nét vẽ path, hình ảnh, quản lý dữ liệu và nhiều tác vụ khác. Tất nhiên việc đơn giản nhất và hiệu quả nhất để tạo đồ họa trong iOS là sử dụng các hình ảnh với khả năng hiện thị chuẩn kết hợp với việc điều khiển của UIKit.
Apple khuyến khích DO.IOS Tieu luan DO.IOS 9 các nhà phát triển nên sử dụng UIKit để vẽ, bởi vì UIKit là framework ở mức độ cao, UIKit cũng cung cấp các thư viện, class phục vụ việc vẽ path, pattern, gradient, images, text. Core animation Core animation là một công nghệ cho phép bạn tạo các hiệu ứng animation mức cao, và hiệu quả trực quan.