Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin i LỜI CẢM ƠN Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác. Trong suốt thờ i gian từ khi bắt đầu học tập ở giảng đường cao đẳng đến nay, em đã nhận được rấ t nhiều sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè. Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở Khoa Công Nghệ Thông Tin – Trường CĐ Công Nghệ Thông Tin Hữu Nghị Việt - Hàn đã cùng vớ i tri thức và tâm huyết của mình để truyền đạt vốn kiến thứ c quý báu cho chúng em trong suốt thời gian học tập tại trường. Trong thời gian làm đồ án em đã gặp không ít khó khăn nhưng được sự giúp đỡ hướng dẫn tận tình của GVHD. Em xin chân thành cảm ơn TS. Lê Tân, người trực tiếp hướng dẫn đã tận tâm hướng dẫn và thảo luận về lĩnh vực ngôn ngữ lập trình mới. Nế u không có những lời hướng dẫn, dạy bảo của thầy thì em nghĩ bài thu hoạch này củ a em rất khó có thể hoàn thiện được. Một lần nữa, em xin chân thành cảm ơn thầy. Đồ án tốt nghiệp này được thực hiện trong khoảng thời gian gần 2 tháng. Bước đầu đi vào thực tế, tìm hiểu về lĩnh vực và ngôn ngữ mới trong nghành lậ p trình, do kiến thức của em còn hạn chế và cộng đồng chưa có nhiều nên còn nhiều bỡ ngỡ . Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn, em rất mong nhận đượ c những ý kiến đóng góp quý báu của quý Thầy Cô và các bạn để kiến thức của em trong lĩnh vực này được hoàn thiện hơn. Sau cùng, em xin kính chúc quý Thầy Cô trong Khoa Công Nghệ Thông Tin và Thầy Hiệu Trưởng – TS Lê Tân thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiệ n sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau. Em xin chân thành cám ơn. Đà Nẵng, ngày 30 tháng 05 năm 2016 Sinh viên thực hiện (ký và ghi họ tên) Nguyễn Công Phƣớc ii MỤC LỤC Trang LỜI CẢM ƠN .................................................................................................................i MỤC LỤC ..................................................................................................................... ii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT .............................................iv DANH MỤC CÁC BẢNG............................................................................................. v DANH MỤC CÁC HINH VẼ, DỒ THỊ .....................................................................vi MỞ ĐẦU .........................................................................................................................1 PHẦN 1: CƠ SỞ LÝ THUYẾT ....................................................................................3 1.1. Nguồn gốc của hệ điều hành iOS và lịch sử phát triển: ..................................3 1.1.1 Nguồn gốc của hệ điều hành iOS ..................................................................3 1.1.2 Lịch sử phát triển ...........................................................................................3 1.1.3 Các phiên bản hệ điều hành iOS ...................................................................4 1.2 Đôi nét về lập trình iOS Swift và môi trƣờng lập trình iOS ..........................12 1.2.1 Đôi nét về lập trình iOS Swift.......................................................................12 1.2.2 Môi trường lập trình iOS ..............................................................................12 1.3 Giới thiệu cơ bản về phần mềm XCode và máy ảo iOS Simulator ...............13 1.3.1 Giới Thiệu Về phần mềm Xcode ..................................................................13 1.3.2 Giới Thiệu iOS Simulator.............................................................................15 PHẦN 2: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU .............................................16 2.1 Các tính năng của XCode và iOS Simulator ...................................................16 2.1.1 Các tính năng của XCode ............................................................................16 2.1.2 Các tính năng của iOS Simulator ................................................................ 27 2.2 Cơ bản về ngôn ngữ lập trình iOS Swift ..........................................................34 2.2.1 Những quy ước trong ngôn ngữ lập trình Swift .........................................34 2.2.2 Biến (VARIABLE) và hằng số (CONSTANT), cách khai báo biến và hằ ng số ......................................................................................................................35 2.2.3 Kiểu dữ liệu ...................................................................................................36 2.2.4 Các phép toán................................................................................................ 36 2.2.5 Hàm (Function) ............................................................................................ 36 2.2.6 Cấu trúc điều kiện.........................................................................................38 2.2.7 Cấu trúc lặp ...................................................................................................40 iii 2.2.8 Mảng (Array), Từ điển (Dictionary) và Tuples ...........................................42 2.2.9 Chuỗi .............................................................................................................44 2.3 Một số thao tác cơ bản trong lập trình iOS .....................................................44 2.3.1 App icon.........................................................................................................45 2.3.2 Loading Screen ............................................................................................. 46 2.3.3 Thay đổi App Name ......................................................................................47 2.3.4 Ẩn status bar .................................................................................................48 2.3.5 Background ..................................................................................................49 2.3.6 Thêm framework ........................................................................................... 53 2.4 Một số đối tƣợng cơ bản ....................................................................................54 2.4.1 Đối Tượng Label ........................................................................................... 54 2.4.2 Đối Tượng Button .........................................................................................54 2.4.3 Đối Tượng Text Field ...................................................................................55 PHẦN 3 : PHÂN TÍCH VÀ THIẾT KẾ....................................................................57 3.1 Giới thiệu bài toán .............................................................................................. 57 3.2 Mô hình hóa yêu cầu ..........................................................................................57 3.2.1 Xác định các tác nhân ..................................................................................57 3.2.2 Xác định các trường hợp sử dụng (Use case) .............................................57 3.2.2.1 Liệt kê các trường hợp sử dụng ............................................................... 57 3.2.2.2 Đặc tả các trường hợp sử dụng ............................................................... 57 3.2.2.3 Biểu đồ trường hợp sử dụng ....................................................................58 3.3 Mô hình hóa khái niệm ......................................................................................59 3.3.1 Các lớp biên...................................................................................................59 3.3.2 Các lớp điều khiển ........................................................................................59 3.4. Biểu đồ hoạt động .............................................................................................. 60 PHẦN 4: GIỚI THIỆU SẢN PHẨM GAME FLAPPY BIRD TRÊN NỀN TẢ NG IOS ................................................................................................................................ 61 4.1 Tổng quan về ứng dụng game Flappy Bird trên nền tảng iOS ......................61 4.2 Giao diện ứng dụng Game Flappy Bird ........................................................... 62 KẾT LUẬN ..................................................................................................................66 HỚNG PHÁT TRIỂN .............................................................................................. 67 TÀI LIỆU THAM KHẢO........................................................................................... 68 iv DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT CÁC CHỮ VIẾT TẮT: iOS Internetwork Operating System Hệ điều hành iOS chạy trên điện thoại iPhone Mac OS X Hệ điều hành Macintosh chạy trên máy tính Mac v DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Trang 2.1 Các kiểu dữ liệu trong Swift 36 2.2 Các phép toán trong Swift 36 2.3 Các toán tử so sánh thông dụng 38 vi DANH MỤC CÁC HINH VẼ, DỒ THỊ Số hiệu hình vẽ Tên hình vẽ Trang 1.1 Giao diện iPhone OS 1.x 5 1.2 Giao diện iPhone OS 2.x 5 1.3 Giao diện bàn phím nằm ngang và tính năng copy paste 6 1.4 Giao diện chỉnh sửa video 6 1.5 Giao diện iOS 4 7 1.6 Trình phát nhạc 8 1.7 iOS 5 là phiên bản đầu tiên cho phép người dùng cập nhật firmware qua giao thức OTA (over-the-air) 8 1.8 Giao diện iOS 6 9 1.9 Giao diện iOS 7 10 1.10 Giao diện iOS 8 11 1.11 Giao diện iOS 9 11 1.12 Cửa hàng Apple Store trực tuyến 13 1.13 Phiên bản Xcode 7 trên trang Apple 13 1.14 Tải Xcode từ trang Developer 14 1.15 Cài đặt Xcode qua Apple Mac Store 15 2.1 Giao diện Navigator 16 2.2 Giao diện ứng dụng 17 2.3 Giao diện code 17 2.4 Giao diện quản lý chi tiết 18 2.5 Activity viewer 18 2.6 Toolbar Utility Area 19 2.7 Utility area 19 2.8 Kéo thả các đối tượng vào giao diện 20 2.9 Canh chỉnh vị trí theo đường kẻ xanh 21 2.10 Thay đổi thuộc tính của đối tượng 21 2.11 Tìm kiếm trong Library 22 2.12 Hai tập tin sử dụng để viết code cho ứng dụng 22 vii 2.13 Ánh xạ đối tượng vào tập tin .h 23 2.14 Lựa chọn kiểu ánh xạ 23 2.15 Gợi ý khắc phục lỗi 24 2.16 Chia đôi màn hình Editor để tiện làm việc 24 2.17 Tùy chỉnh Font Color cho giao diện lập trình code của Xcode 25 2.18 Lựa chọn thiết bị iOS Simulator 25 2.19 Nhấn Stop để dừng chương trình 26 2.20 Vùng Debug Navigator 26 2.21 Vùng Debug area 26 2.22 Đánh dấu Breakpoint 27 2.23 Thu gọn đoạn code 27 2.24 Chọn Run để mở iOS Simulator 28 2.25 Mở iOS Simulator trong Menu 28 2.26 Trong menu chọn Quit iOS Simulator 29 2.27 Trong menu chọn xoay màn hình iOS Simulator 29 2.28 ẨnHiện keyboard trong iOS Simulator 30 2.29 Gỡ ứng dụng trong iOS Simulator 30 2.30 Tải thêm các iOS Simulator phiên bản cũ hoặc tài liệu 31 2.31 Chụp ảnh màn hình iOS Simulator 31 2.32 Chọn Select hoặc Select All 32 2.33 Lựa chọn chuỗi cần copy và chọn Copy 32 2.34 Paste từ Mac OS vào iOS Simulator 33 2.35 Chọn Paste 33 2.36 Icon 45 2.37 Kéo thả icon vào vị trí 45 2.38 Icon trên iOS simulator 46 2.39 Chuẩn bị Background 46 2.40 Kéo thả background image vào Lauch Image 47 2.41 Truy cập tập tin .plist 47 2.42 Sửa đổi Bundle display name 48 viii 2.43 Thay đổi tên trên iOS Simulator 48 2.44 Thêm dòng mới 48 2.45 Chọn giá trị Yes 49 2.46 Thanh trạng thái Status bar đã mất 49 2.47 Background Image 50 2.48 Chép hình ảnh vào Project 50 2.49 Kéo thả UIImage View vào Project 50 2.50 Lựa chọn hình ảnh làm background 51 2.51 Thay đổi background bằng image 51 2.52 Attributes inspector 52 2.53 Chọn màu 52 2.54 Background thay đổi 52 2.55 Link Frameworks and Libraries 53 2.56 Chọn Framework 53 2.57 Chọn Add 53 2.58 Label 54 2.59 Thuộc tính của Label 54 2.60 Button 55 2.61 Thuộc tính của button 55 2.62 Text Field 56 2.63 Thuộc tính của Text Field 56 3.1 Biểu đồ trường hợp sử dụng Người chơi 58 3.2 Các lớp biên 59 3.3 Lớp điều khiển 59 3.4 Biểu đồ hoạt động 60 4.1 Màn hình Giới thiệu khi chạy Game trên máy ảo iOS 62 4.2 Giao diện ứng dụng Game 63 4.3 Giao diện ứng dụng Game 64 4.4 Giao diện ứng dụng Game 65 Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 1 MỞ ĐẦU Lý do chọn đề tài Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt là ngành công nghệ thông tin, làm từng bước thay đổi cuộc sống của con người bởi các ứng dụng của sản phẩm của công nghệ. Điện thoại di động là một thứ không thể thiếu trong cuộc sống của chúng ta. Đặc biệt là điện thoại thông minh. Cả thế giới đã công nhận rằng: Sự thành công của iPhone phần lớn đến từ nền tảng iOS, không chỉ được tối ưu với phần cứng, nền tảng này còn có tính bảo mật cao. Apple cùng với những chiếc iPhone đã thay đổi hoàn toàn lịch sử của ngành công nghệ di động, mở ra những khái niệm hoàn toàn mới khiến các hãng cạnh tranh luôn phải chạy theo. Song song với sự thành công của thiết bị chính là hệ điều hành iOS độc quyền của hãng. Năm 2016, bên cạnh những chiếc iPhone, iPad, chúng ta đã được chứng kiến những bom tấn ra mắt như Apple Watch, Apple Tivi và còn biết bao nhiêu bí mật khác mà Apple đang chuẩn bị tung ra thị trường. Cũng chính vì vậy, mà việc làm dành cho những Lập trình viên iOS sẽ ngày càng tăng dữ dội. 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à OS X, được giới thiệu bởi Apple tại hội nghị WWDC 2014. Đây là ngôn ngữ tiềm năng, được thừa kế từ Objective-C nhưng dễ học hơn Objective-C, để tiếp cận được Swift thì Objective-C là ngôn ngữ cơ bản mà các lập trình viên iOS cần phải nắm vững. Swift được thiết kế là một ngôn ngữ có khả năng phòng chống lỗi cao. Nó được biên dịch với trình biên dịch LLVM. Điểm yếu lớn nhất của Swift có lẽ sẽ là tuổi đời quá trẻ của ngôn ngữ lập trình này. Cụ thể hơn, để sử dụng Swift, các nhà phát triển sẽ phải học lại một ngôn ngữ lập trình hoàn toàn mới. Và cộng đồng cũng chưa có nhiều, Các nhà phát triển ứng dụng iOS sẽ mất một khoảng thời gian đáng kể để làm chủ ngôn ngữ mới của Apple. Và đối với nhưng lập trình viên mới gia nhập vào ngôi nhà lập trình iOS, Objective-C là ngôn ngữ cơ bản phải nắm được và là nền tảng cho việc tiếp cận Swift. Điều đó làm cho lập trình iOS ngày càng khó hơn. Mục đích của đề tài lần này là tìm hiểu về ngôn ngữ lập trình mới, nghiên cứu và xây dựng được một ứng dụng thực tế. Em mong rằng qua đề tài này, em sẽ có thêm nhiều động lực và nền tảng cơ bản để bước tiếp con đường đam mê lập trình iOS của Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 2 mình. Đây cũng chính là lý do chính mà em chọn đề tài này làm đề tài tốt nghiệp của mình. Mục tiêu và nhiệm vụ nghiên cứu Nhằm tìm hiểu và nghiên cứu để biết được cách thức xây dựng một ứng dụng mang tính thực tế trên hệ điều hành IOS, tìm hiểu thêm về ứng dụng game trên hệ điều hành IOS và cách tạo ra nó. Hiểu về nguyên lý hoạt động của IOS, các thành phần của hệ thống cũng như của một ứng dụng thực thi trên nền tảng IOS. Áp dụng thiết kế ứng dụng game Flappy Bird chạy trên nền tảng IOS. Đối tƣợng và phạm vi nghiên cứu o Đối tƣợng: Ngôn ngữ Swift. Công cụ phát triển ứng dụng XCode và iOS SDK. Máy ảo iOS Simulator. Hệ điều hành và tài nguyên hệ thống IOS. o Phạm vi: Nghiên cứu cách thức tạo nên ứng dụng trên IOS. Các thao tác cơ bản Nghiên cứu ngôn ngữ Swift Phƣơng pháp nghiên cứu. Nghiên cứu và thu thập tài liệu, các phương pháp để ứng dụng liên quan đến đề tài. S ử dụng trực tiếp hệ điều hành Mac OS X để cài đặt và sử dụng. Tiếp cận ngôn ngữ Swift qua tài liệu liên quan. Ý nghĩa khoa học và thực tiễn o Ý nghĩa khoa học: Hiểu được cơ bản về ngôn ngữ Swift và cách thức tạo nên ứng dụng trên IOS. o Ý nghĩa thực tiễn: Thiết kế được ứng dụng game Flappy Bird trên iOS. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 3 PHẦN 1: CƠ SỞ LÝ THUYẾT 1.1. Nguồn gốc của hệ điều hành iOS và lịch sử phát triển: 1.1.1 Nguồn gốc của hệ điều hành iOS Apple Inc. là tập đoàn công nghệ máy tính của Mỹ được sáng lập là Stephen Wozniak, Steve Jobs và Ronald Wayne, có trụ sở chính đặt tại Silicon Valley (Thung Lũng Si-li-côn) ở San Francisco, tiểu bang California. Aplle được biết đến với nhiề u sản phẩm là máy tính cá nhân, phần mềm, phần cứng, thiết bị nghe nhạc và nhiều thiế t bị đa phương tiện khác. Sản phẩm nổi tiếng nhấ t là máy tính Apple Macintosh, máy nghe nhạc iPod (2001), chương trình nghe nhạc iTunes, điện thoạ i iPhone (2007), máy tính bảng iPad (2010) và đồng hồ thông minh Apple Watch (2014-2015) hoạt độ ng trên nhiều quốc gia trên thế giới. iOS là từ viết tắt của Internetwork Operating System, là hệ điều hành mạ ng của Cisco, giúp cho các thiết bị của Cisco (switch, router) sử dụng được các tập hợ p chức năng mạng chạy trên nó (routing, packet switching...) để xây dự ng và hình thành nên hệ thống mạng. iOS có nguồn gốc từ OS X, mà nó chia sẻ nền tảng Darwin. iOS là phiên bản di động của Apple OS X - hệ điều hành được sử dụng trên các máy tính củ a Apple. iOS là một hệ thống điều hành điện thoại di động phát triển và phân phối bở i Apple Inc phát hành năm 2007 cho iPhone và iPod Touch, nó đã được mở rộng để hỗ trợ các thiết bị khác của Apple như iPad và Apple TV. Apple không cấp phép cho iOS để cài đặt trên phần cứng không phải của Apple. 1.1.2 Lịch sử phát triển iOS là hệ điều hành trên các thiết bị di động của Apple. Ban đầu hệ điề u hành này chỉ được phát triển để chạy trên iPhone, nhưng sau đó nó đã được mở rộng để chạy trên các thiết bị của Apple như iPod touch, iPad và Apple TV. Ngày 08 tháng 6, 2015, theo số liệu thống kê ở hội nghị WWDC năm 2015, tổng số lượng ứng dụng trên App Store đã vượt mốc 1,5 triệu ứng dụng, số lượng ứng dụng trung bình mà mỗi người dùng đang sử dụng là 119 ứng dụng. Cứ mỗi giây trôi qua, App Store lại chứ ng kiến 850 lượt tải. App Store đã vượt qua mốc 100 tỷ lượt tải ứng dụng. Giao diện người dùng của iOS dựa trên cơ sở thao tác bằng tay. Ngườ i dùng có thể tương tác với hệ điều hành này thông qua rất nhiều động tác bằ ng tay trên màn hình cảm ứng của các thiết bị của Apple. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 4 Hệ điều hành di dộng của Apple được công bố cùng chiếc iPhone 2G tạ i Macworld Conference Expo vào ngày 912007 và chính thức phát hành trong tháng 6 sau đó. Khi ra mắt, hệ điều hành này không được Apple chỉ định mộ t cái tên riêng biệt mà chỉ đơn giản gọi là "hệ điều hành X dành cho iPhone” và không hỗ trợ các ứ ng dụng từ các nhà phát triển thứ 3. Nguyên nhân của việc từ chối các ứng dụng từ bên thứ 3 được Steve Jobs đưa ra là các nhà phát triển có thể xây dựng ứng dụ ng trùng chức năng với các ứng dụng gốc trên iPhone. Đến ngày 17 10 2007, Apple thông báo đã phát triển bộ công cụ phát triể n phần mềm (SDK) và lên kế hoạch chuyển chúng đến tay các nhà phát triển vào tháng 2 năm 2008. Sau đó ngày 632008, Apple phát hành phiên bản thử nghiệm (beta) đầ u tiên của bộ công cụ này cùng với một cái tên mới cho hệ điều hành, "iPhone OS". Tháng 9 năm 2009, iPod touch ra đời mang trên mình “iPhone OS” với hầu hế t chức năng hiện có ngoại trừ khả năng gọi, nhắn tin hay các dịch vụ từ nhà mạng khác. Và đến mùa lễ cuối năm này, Apple cũng đạt doanh số hơn một triệu chiếc iPhone. Ngày 2712010, sau sự thành công của iPhone và iPod touch, Apple tiếp tụ c giới thiệu iPad sử dụng hệ điều hành được tùy chỉnh từ “iPhone OS” với mộ t màn hình lớn hơn so với iPhone và iPod touch được thiết kế để duyệt web, đọc sách, giải t rí đa phương tiện… Cuối cùng đến tháng 6 năm 2010, Apple chính thức đổi tên “iPhone OS” thành một cái tên mới đơn giản, dễ nhớ hơn được mua từ hãng sản xuất thiết bị mạng Cisco, đó là "iOS" và được sử dụng cho đến ngày hôm nay. 1.1.3 Các phiên bản hệ điều hành iOS Nền tảng di động iOS của Apple đã tồn tại được một khoảng thời gian dài, kể từ thời điểm mà người dùng chỉ biết iPhone chứ chưa rõ hệ điều hành gì, cho đến hiện tạ i là iOS 9. Mời các bạn cùng nhìn lại lịch sử 9 đời của nền tảng này. iPhone OS Hệ điều hành này được tiết lộ tại Hội nghị và Triển lãm Macworld diễn ra vào tháng 12007 và được phát hành vào tháng 9 năm đó. Khi đó, hệ điều hành này chưa có một cái tên "độc quyền" nên chỉ đơn giản gọi là "iPhone chạy OS X". Ban đầu, ứ ng dụng bên thứ ba không được hỗ trợ. Steve Jobs đã chỉ ra rằng những nhà phát triể n có thể xây dựng các ứng dụng web mà "sẽ vận hành như những ứng dụng ban đầ u trên iPhone". Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 5 Hình 1.1 Giao diện iPhone OS 1.x Không như bất kỳ hệ điều hành di động nào khác cùng thời điểm, Apple chỉ dựa vào thao tác cảm ứng vì không dùng bàn phím cứng. Khi đó, chưa có App Store , không thể chụp được ảnh màn hình. Một điều thú vị là phiên bản sau cùng củ a iPhone OS 1.x là 1.1.5, lại ra đời ngay sau khi iPhone OS 2 được tiết lộ. iPhone OS 2 Đến năm 2008, Apple chính thức trình làng iPhone OS 2.x, nền tảng này ra đờ i chủ yếu để vá hầu hết các lỗi góp mặt trên phiên bản tiền nhiệm. Quan trọng nhất là sự xuất hiện của kho ứng dụng trực tuyến App Store, cho phép ngườ i dùng iPhone và iPhone 3G tải về các ứng dụng và trò chơi. Hình 1.2 Giao diện iPhone OS 2.x Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 6 Chắc chắn, bản cập nhật này đã mang lại rất nhiều điều mới lạ cho ngườ i dùng. Trong số đó phải kể đến chính là ứng dụng Danh bạ được trang bị tính năng tìm kiế m và nâng cấp ứng dụng máy tính để giải quyết được các bài toán phức tạp hơn. iPhone OS 3 (iOS 3) Bước sang năm 2009, Apple phát hành phiên bản thứ ba của hệ điều hành di động "cây nhà lá vườn". Mặc dù không có nhiều đột phá, nhưng iPhone OS 3.x đã mang đến hàng loạt các tính năng mới rất hấp dẫn. Hình 1.3 Giao diện bàn phím nằm ngang và tính năng copy paste Đáng chú ý nhất là tính năng quay và chỉnh sửa video, tin nhắn MMS, lệ nh bằng giọng nói (chỉ mới có trên iPhone 3GS), sao chép dán, tìm kiếm spotlight, chế độ bàn phím nằm ngang khi vào Mail và tin nhắn, một số ứng dụng mặc định mới như: Voice Memos, la bàn, ... Hình 1.4 Giao diện chỉnh sửa video Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 7 Đến tháng 62010, Apple quyết định đổi tên iPhone OS thành iOS và mang cả nền tảng này lên mẫu máy tính bảng đầu tiên của hãng - iPad. Do nhãn hi ệu "IOS" đã được Cisco dùng để đặt tên cho hệ điều hành của hãng này, nhằm tránh các vụ kiệ n cáo, Apple đã xin giấy phép sử dụng chung nhãn hiệu iOS từ Cisco. iOS 4 iOS 4 ra đời vào năm 2010, mang đến hàng loạt các thay đổi mới cho nền tảng này. Đáng chú ý nhất là hỗ trợ hình nền và các chức năng đa tác vụ (đa nhiệm), tính năng này đã có mặt khá lâu trên các nền tảng khác. Hình 1.5 Giao diện iOS 4 iOS 4 cũng sử dụng nhiều hình ảnh chuyển động hơn trên toàn hệ thống so vớ i phiên bản tiền nhiệm, bổ sung chức năng sửa lỗi chính tả trên bàn phím, thống nhấ t hộp thư email, hỗ trợ thay đổi nhiều máy chủ… Ngoài ra, đây còn là phiên bản iOS đầu tiên không tương thích với iPhone thế hệ đầu. iOS 4.2.1 cũng không tương thích với iPhone 3G. iOS 5 Apple đón chào năm 2011 bằng việc giới thiệu iOS 5, song hành cùng hơn 200 tính năng mới. Một con số thật ấn tượng, đúng không? Vâng, các tính năng nổi bậ t nhất trong số đó bao gồ m: Trung tâm thông báo (Notification Center), Siri, iMessage, iCloud, từ điển phổ quát, hỗ trợ Game Center, tích hợp mạng xã hội Twitter (bạn chỉ cần truy cập một lần với tài khoản Twitter từ menu Settings của thiết bị iOS, những lầ n sau Twitter sẽ được khởi động cùng với các ứng dụng khác như Contacts , Camera, Photos, Safari và Maps), ... Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 8 Hình 1.6 Trình phát nhạc Ngoài ra, Apple còn cung cấp thêm 2 tính năng thú vị cho trình duyệ t web Safari, bao gồm: Safari Reader, giúp bạn loại bỏ khỏi những thứ gây xao lãng nộ i dung bạn đang đọc như quảng cáo và chỉ để lại văn bản, hình ảnh của nộ i dung chính trên trang web, và liên tục điều chỉnh kích cỡ font cho phù hợp với thiết bị của bạn. Tính năng thứ hai của Safari có tên là Reading List, cho phép lưu lại nội dung web để xem tiếp vào lần sau. Hình 1.7 iOS 5 là phiên bản đầu tiên cho phép người dùng cập nhậ t firmware qua giao thức OTA (over-the-air) Newsstand (sạp báo) là tính năng hướng đến người tiêu dùng sử dụng các Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 9 phương tiện truyền thông. Newsstand là một nơi đặc biệt dành những người thích đọ c báo và tạp chí trên các thiết bị chạy iOS. Ngoài việc hiển thị một giao diện thân thiệ n, Newsstand còn cho phép bạn quản lí tất các đầu sách bạn mua trong quá trình sử dụng. Apple đã thỏa thuận với các nhà xuất bản lớn để cung cấp những đầu sách với nộ i dung tốt nhất cho người dùng iOS. Bạn cũng có thể đọc báo và tạp chí khi không kế t nối mạng bằng cách lưu các nội dung này để có thể xem offline. iOS 6 iOS 6 được công bố vào năm 2012, mang đến nhiều cải tiến so với phiên bản trước, đáng kể nhất là Siri thông minh hơn (cung cấp chi tiết về phim, thể thao, nhà hàng, ứng dụng), tích hợp sâu với Facebook, ứng dụng bản đồ mới thay thế Google Maps, khả năng trả lời cuộc gọi bằng tin nhắn, chế độ Do Not Disturb, Passcode, Safari có thêm chế độ đọc ngoại tuyến (offline) cũng như nhiều tính năng khác trong Photo Stream, Email. Hình 1.8 Giao diện iOS 6 Một số ứng dụng được cài sẵn trong các phiên bản iOS trước đó như Google Maps và YouTube đều bị gỡ bỏ hết, động thái này nhằm giảm bớt sự phụ thuộ c vào Google của Apple. Dĩ nhiên, các ứng dụng này bạn có thể tải lại trên App Store. iOS 6 cũng giới thiệu loạt cài đặt bảo mật mới để người dùng cảm thấy an toàn hơn. iOS 7 Kể từ iPhone OS, nền tảng di động của Apple đều có thiết kế na ná nhau và Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 10 không thay đổi gì nhiều ở mặt biểu tượng icon, kiểu chữ, cũng như giao diệ n. Tuy nhiên, với iOS 7, Apple đã đại tu lại hệ điều hành này, mang đế n cái nhìn hoàn toàn mới. iOS 7 mới mẻ hơn, sống động hơn, dùng giao diện phẳ ng và khác hoàn toàn so với thiết kế mô phỏng trước đây. Hình 1.9 Giao diện iOS 7 Ngoài phần "mặt tiền", iOS 7 còn mang đến loạt tính năng mới như: Control Center, Notification Center, đa nhiệm tốt hơn, ứng dụng Photos được nâng cấ p, AirDrop, Safari có thêm chế độ duyệt web toàn màn hình và vuốt. Ứng dụng chụp ả nh bổ sung thêm chế độ Burst Mode cho phép người dùng chụp liên tiếp 10 tấ m hìnhgiây khi nhấn giữ nút chụp, trong khi chế độ quay chậm Slo-Mo hỗ trợ quay video HD 720p với tốc độ 120 khung hìnhgiây. Bên cạnh đó, camera còn chụp được ảnh đị nh dạng vuông như Instagram. iOS 8 iOS 8 được giới thiệu vào ngày 1892014, dành cho tất cả các thiết bị kể từ iPhone 4S, iPod 5, iPad 2 trở lên và được xem là phiên bản "mở" nhất từ trước đế n nay. Nó hỗ trợ bàn phím thứ ba, widget trong mục Today của Notification Center, mang đến trải nghiệm tương tự như của nền tảng đối thủ Google Android. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 11 Hình 1.10 Giao diện iOS 8 Một số cải tiến khác đến cùng iOS 8 là thông báo tương tác hiệ n ra phía trên cùng màn hình, cho phép trả lời nhanh hoặc tắt; trình đơn đa nhiệ m (multi-tasking) hiển thị số liên lạc thường xuyên; tìm kiếm Spotlight hoàn thiện hơn. Health , tham vọng của Apple trong lĩnh vực theo dõi sức khỏe, y tế, cũng có mặt. iOS 9 iOS 9 được giới thiệu vào ngày 1092015. Cải tiến quan trọng và đáng chú ý nhất của phiên bản iOS 9 này chính là trợ lý ảo Siri hay tính năng phân chia màn hình chạy đa nhiệm trên iPad. Hình 1.11 Giao diện iOS 9 Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 12 Ngoài ra, còn có các tính năng được cải tiến khác như bản đồ, ghi chú, ứ ng dụng tin tức mới với nhiều nội dung để bạn có thể đọc khi rảnh rỗi. Bạn có thể cài đặt iOS 9 mà không cần xóa bất cứ dữ liệu nào để lấy thêm bộ nhớ. iOS 9 chỉ chiếm 1, 3GB trong khi iOS 8 cần tới 4, 5 GB bộ nhớ trong. Đây là điều rất đáng mừng với những ai đang sử dụng iPhone phiên bản 16 GB. Hiệu suất làm việc của chiếc iPhone của bạn cũng tăng lên đáng kể khi iOS 9 sử dụng CPU và GPU một cách hiệu quả hơn. Thêm vào đó, mã mở khóa 4 ký tự cũng được thay bằng mã 6 ký tự, điều này giúp cho thiết bị dùng iOS của bạn trở nên an toàn hơn. 1.2 Đôi nét về lập trình iOS Swift và môi trƣờng lập trình iOS 1.2.1 Đôi nét về lập trình iOS Swift Swift là một ngôn ngữ lập trình hướng đối tượng (Mọi thứ trong Swift đều là hướng đối tượng, kể cả những giá trị như số 1, 2, 3… cũng là đối tượng). Swift đượ c Apple giới thiệu tại hội nghị WWDC 2014, ngôn ngữ này dùng để phát triển ứng dụng trên iOS và OS X. Trước đây Objective C là “đứa con nối dõi tông đường” củ a Apple, việc ra đời Swift có thể giúp các lập trình viên dễ dàng tiếp cận hơn, đặc biệ t nó là mã nguồn mở (các tài nguyên về Swift ta có thể tải về từ trang https:swift.org ). Apple vẫn chủ ý cho chạy song song 2 ngôn ngữ lập trình Objective-C và Swift. 1.2.2 Môi trường lập trình iOS Quá trình chuẩn bị trước khi bắt đầu lập trình ứng dụng trên iPhone là quá trình cơ bản cần phải chuẩn bị kỹ lưỡng. Quá trình này sẽ giúp chúng ta có các điều kiệ n cần thiết để có thể thuận lợi bắt đầu tìm hiểu về lập trình ứng dụng trên iPhone. Có 2 phƣơng pháp để chuẩn bị môi trƣờng lập trình iOS: Sử Dụng Sản Phẩm Chính Hãng Apple. Lập Trình Ứng Dụng Iphone Trên Windows bằng cách sử dụng máy ảo. Bạn có thể truy cập vào www.apple.com, sau đó lựa chọn Shop Mac để đế n chuyên mục bán các sản phẩm chạy Mac OS của Apple. Tại đây bạn có thể lựa chọ n nhiều loại sản phẩm khác nhau như Macbook Air, Macbook Pro, iMac, Mac mini…. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 13 Hình 1.12 Cửa hàng Apple Store trực tuyến Hoặc bạn có thể mua tại các Shop có uy tín tại Việt Nam như F.Studio của FPT, đây là đơn vị phân phối được Apple chứng nhận. Nếu muốn lập trình ứng dụng cho iPhone, nhưng lại muốn thực hiện trên môi trường Windows để có thể thao tác thêm các công việc khác trên môi trường này, lự a chọn tốt nhất cho bạn lúc này chính là sử dụng một máy ảo chạy hệ điều hành Mac OS để lập trình. Tuy nhiên nếu bạn lựa chọn phương án này, cấu hình máy tính của bạ n phải mạnh, CPU xử lý tốt, và bạn nên dành ít nhất 3G RAM cho máy ảo hoạt động tốt hơn. Quá trình giả lập cần khá nhiều thời gian để tìm hiểu. 1.3 Giới thiệu cơ bản về phần mềm XCode và máy ảo iOS Simulator 1.3.1 Giới Thiệu Về phần mềm Xcode Phần mềm Xcode là bộ công cụ do Apple cung cấp cho các lập trình viên để lậ p trình ứng dụng cho các thiết bị chạy hệ điều hành của Apple. Phiên bản mới nhất hiệ n nay của Xcode là bản Xcode 7 trên trang Developer của Apple. Hình 1.13 Phiên bản Xcode 7 trên trang Apple Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 14 Sau khi bạn đã có được hệ điều hành Mac OS, việc tiếp theo bạn phải làm trướ c khi có thể bắt đầu lập trình ứng dụng iPhone là cài bộ công cụ lậ p trình Xcode do Apple cung cấp cho các nhà lập trình ứng dụng, để các nhà lập trình có thể phát triển ứng dụng cho cả iOS lẫn Mac OS. Việc cài đặt Xcode có nhiều cách, tùy theo bạ n chọn lựa cách nào phù hợp với bản thân. Cài Đặt Thông Qua Bản Tải Về Từ Trang Dành Cho Developer Bạn truy cập vào trang www.developer.apple.com để tiến hành tải phiên bả n Xcode mới nhất (hoặc các phiên bản khác tùy theo nhu cầu của bạn). Yêu cầ u có tài khoản Developer ID. Hình 1.14 Tải Xcode từ trang Developer Cài Đặt Thông Qua Apple Mac Store Đây là cách phổ biến nhất, vì việc tải Xcode trên Apple Store là miễ n phí, và chỉ cần bạn có một tài khoản Apple ID là được, không yêu cầu phả i là Developer ID. Bạn chỉ cần truy cập vào Apple Mac Store và tìm kiếm Xcode, bạn sẽ thấy kết quả là phần mềm Xcode Free, công việc bây giờ là bạn chỉ cần chọn Get Install App và chờ đợi hoàn tất. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 15 Hình 1.15 Cài đặt Xcode qua Apple Mac Store 1.3.2 Giới Thiệu iOS Simulator iOS Simulator là một phần trong bộ công cụ kèm theo của phần mề m Xcode. iOS Simulator chứa iOS SDK cho phép bạn chạy trên Mac OS để giả lập môi trườ ng iPhone, iPad nhằm phục vụ cho việc kiểm thử ứng dụng được viết ra trước khi kiể m thử ứng dụng trên thiết bị thật. iOS Simualtor cho phép bạn cài đặt nhiều thiết bị iOS khác nhau như iPhone , iPhone Rentina, iPad, iPad Rentina.. với nhiều phiên bản iOS khác nhau như 6.0, 6.1, 7.0…. Do đó bạn có thể dễ dàng xây dựng ứng dụng của mình dành cho phiên bả n iOS mới hoặc dùng cho cả phiên bản iOS cũ. Với iOS Simulator, bạn có thể kiểm thử ứng dụng của bạn về thiết kế giao diện, về tính năng của ứng dụng, từ đó có thể khắc phục các lỗi phát sinh, t ối ưu hóa ứng dụng trước khi bạn đem ứng dụng lên thiết bị thật. Ứng dụng iOS Simulator có thể chạy chung với phần mềm Xcode hoặc chạy độc lập đều được. Bạn có thể tương tác với iOS Simulator thông qua bàn phím, chuột để nhập dữ liệu cũng như điều khiển các sự kiện của người dùng. Phần này sẽ giúp bạ n tìm hiểu một số điểm cơ bản của iOS Simulator để hỗ trợ bạn tốt hơn trong quá trình viết ứng dụng cho iOS. Đặc biệt Nếu bạn muốn build chương trình chạy trên thiết bị thật thì cần đăng ký 1 tài khoản mất phí 99 1 năm. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 16 PHẦN 2: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 2.1 Các tính năng của XCode và iOS Simulator 2.1.1 Các tính năng của XCode Navigator Area Navigator area cho phép bạn quản lý ứng dụng hiệu quả như quản lý các tậ p tin, thư mục, quản lý các thông báo lỗi và cảnh báo, quản lý việc debug…Có thể chia Navigator area thành hai phần chính là Navigator selector bar và Content area. Hình 2.1 Giao diện Navigator Trong Navigator selector bar gồm một số button chính sau: Project Navigator (Hình): dùng để quản lý các tập tin của ứng dụng như thêm, xóa, gom nhóm…Các tập tin quản lý sẽ được thể hiện trong Content area. Find Navigator ( ): sử dụng để tìm kiếm một cách nhanh chóng các string trong ứ ng dụng, tìm kiếm nội dung mở rộng. Issue Navigator ( ): quản lý các thông báo lỗi, cảnh báo của ứng dụng. Debug Navigator( ): theo dõi quá trình debug ứng dụng. Editor Area Editor area cho phép bạn thiết kế giao diện, viết và sửa code cho ứng dụ ng. Khi bạn chọn tập tin storyboard bên Content area thì Editor area sẽ hiển thị giao diện Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 17 Interface Builder cho bạn thiết kế giao diện. Tương tự với tậ p tin .m và .h thì Editor area sẽ hiển thị nội dung code của tập tin. Hình 2.2 Giao diện ứng dụng Hình 2.3 Giao diện code Editor area còn cho phép bạn quản lý các đối tượng trong giao diện mộ t cách chi tiết hơn. Trong phần Interface Builder, bạn chọn button Show Document Outline ( ) bên góc trái màn hình, bạn sẽ thấy được một vùng quản lý phân cấp các đối tượng. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 18 Hình 2.4 Giao diện quản lý chi tiết Toolbar Area Toolbar cho phép thực hiện một số thao tác một cách nhanh chóng thông qua các Button mà không cần phải dùng tới Menu. Toolbar gồm một số thành phần sau: - Run button ( ): dùng để chạy thử ứng dụng. - Stop button ( ): dùng để dừng việc chạy thử ứng dụng. - Scheme menu ( ): dùng để lựa chọn iOS Simulator thích hợp để chạy ứng dụng. - Activity viewer: thông báo trạng thái của ứng dụng, cũng như hiện các trạng thái lỗi, cảnh báo của chương trình (nếu có). Hình 2.5 Activity viewer - Editor selector ( ): gồm các button dùng để điều chỉnh Editor area (cho phép chia đôi Editor area ra làm hai hay chỉ là một vùng duy nhất…). - View selector ( ): dùng để ẩnhiện các vùng Navigator area , Utility area, Debug area. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 19 Hình 2.6 Toolbar Utility Area Utility Area Utility area được sử dụng để thay đổi các thuộc tính của đối tượ ng bên Interface Builder, ngoài ra còn được sử dụng để lựa chọn và kéo thả các đối tượng, đoạ n code mẫu vào Interface Buider và Editor. Utility area đượ c chia làm 2 vùng chính là Inspector và Library. Inspector pane là vùng cho phép bạn có sự thay đổi thuộc tính của đối tượng. Trên đầu củ a Inspector pane là Inspector selector bar bao gồm các button hỗ trợ bạn trong việc điều chỉ nh thuộc tính. Trên đầu của Libarary pane là Libaray selector bar bao gồm các button để bạn có thể chọn lựa phù hợp trong việc sử dụng các đoạn code mẫu, các đối tượng.area Hình 2.7 Utility area Trong Inspector selector bar, có hai button bạn cần lưu ý là Attribute ( ) và Quick Help ( ). Quick Help cho phép bạn tra cứu một cách nhanh chóng các đối tượng, hàm trong tài liệu kèm theo của Xcode. Attribute cho phép bạn thay đổ i các thuộc tính của đối tượng. Trong Library selector bar, có một số button quan trọng là Code snippets ( ), Objects ( ). Code snippets hiển thị cho bạn danh sách các đoạn code mẫu để bạn lựa Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 20 chọn sử dụng trong quá trình viết ứng dụng. Objects hiển thị các đối tượng củ a Xcode cho bạn sử dụng thiết kế giao diện ứng dụng. Thiết Kế Giao Diện Giao diện ứng dụng trong Xcode được thiết kế thông qua Interface Builder, các đối tượng của Interface Builder được cung cấp trong Utility area. Để tiế n hành thiết kế giao diện, bạn kéo thả đối tượng trong Utility area vào Interface Builder. Hình 2.8 Kéo thả các đối tượng vào giao diện Tại đây bạn có thể điều chỉnh, sắp xếp vị trí của các đối tượng theo ý tưở ng thiết kế của bạn. Trong Xcode, tập tin bạn dùng để thiết kế giao diện là tập tin .storyboard. Khi kéo thả các đối tượng vào Interface Builder, bạn sẽ dễ dàng xác đị nh vị trí đặt đối tượng sao cho giao diện cân đối, không bị hiện tượng lệch khi Run ứ ng dụng. Đó là nhờ vào tính năng hỗ trợ canh chỉnh của Xcode thông qua các đường kẻ đứt nét màu xanh. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 21 Hình 2.9 Canh chỉnh vị trí theo đường kẻ xanh Bạn có thể điều chỉnh các thuộc tính của các đối tượ ng trong Interface Builder thông qua vùng Inspector pane. Hình 2.10 Thay đổi thuộc tính của đối tượng Để tìm kiếm đối tượng một cách nhanh chóng, bạn sử dụng công cụ tìm kiếm trong Library pane. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 22 Hình 2.11 Tìm kiếm trong Library Viết Code Phần code của ứng dụng thường được viết trong hai tập tin là .h và .m. Tập tin .h thường được sử dụng để kết nối và khai báo các đối tượng của Interface Builder trước khi muốn sử dụng các đối tượng này để lập trình. Ngoài ra tập tin .h còn dùng để khai báo các hàm sự kiện trước khi sử dụng trong tập tin .m. Tập tin .m dùng để triể n khai các hàm sự kiện mà bạn đã khai báo bên tập tin .h. Hình 2.12 Hai tập tin sử dụng để viết code cho ứng dụng Để kết nối đối tượng trong Interface Builder vào tập tin .h (ánh xạ), bạn nhấn kết hợp Ctrl + nhấp chuột vào đối tƣợng và kéo thả vào tập tin .h Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 23 Hình 2.13 Ánh xạ đối tượng vào tập tin .h Khi hộp thoại hiện ra, bạn lựa chọn loại kết nối cho đối tượng là Action hoặc Outlet. Hiểu một cách đơn giản, đối tượng nào mà bạn sử dụng để hiển thị thông tin ra bên ngoài thì thuộc loại Outlet. Đối tượng nào mà bạn muốn viết code để khi tương tác với đối tượng đó sẽ cho ra kết quả mà bạn muốn ( ví dụ bạn muốn nhấn vào Button sẽ hiện “Hello World” ) thì bạn sẽ chọn loại là Action. Một đối tượng có thể vừ a là Action, vừa là Outlet tùy vào người viết ứng dụng quy định. Hình 2.14 Lựa chọn kiểu ánh xạ Khi bạn viết code, Xcode hỗ trợ bạn trong việc phát hiện lỗ i và thông báo cho bạn bằng hình tròn màu đỏ chứa dấu chấm than tại vị trí phát hiện lỗi. Ngoài ra Xcode cũng có chế độ cảnh báo bằng tam giác màu vàng cho đoạn code mà Xcode cho rằ ng cần cải thiện để bạn kịp thời kiểm tra lại và chỉnh sửa cho hiệu quả (nếu cần). Xcode còn hỗ trợ bạn một chế độ gợi ý sửa lỗi trong quá trình viết code. Ví dụ bạn viết code nhưng quên dấu “;”, Xcode sẽ gợi ý cho bạn có dấu “;” để hoàn tất đoạ n code hoàn chỉnh. Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird trên nền tảng IOS Nguyễn Công Phước – CCLT07A 24 Hình 2.15 Gợi ý khắc phục lỗi Trong Library pane, Xcode hỗ trợ sẵn cho bạn một số đoạn code mẫu trong thư viện, nếu bạn cần xài ...
LỜI CẢM ƠN Trên thực tế khơng có thành công mà không gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt thời gian từ bắt đầu học tập giảng đường cao đẳng đến nay, em nhận nhiều quan tâm, giúp đỡ quý Thầy Cô, gia đình bạn bè Với lịng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô Khoa Công Nghệ Thông Tin – Trường CĐ Công Nghệ Thông Tin Hữu Nghị Việt - Hàn với tri thức tâm huyết để truyền đạt vốn kiến thức quý báu cho chúng em suốt thời gian học tập trường Trong thời gian làm đồ án em gặp khơng khó khăn giúp đỡ hướng dẫn tận tình GVHD Em xin chân thành cảm ơn TS Lê Tân, người trực tiếp hướng dẫn tận tâm hướng dẫn thảo luận lĩnh vực ngôn ngữ lập trình Nếu khơng có lời hướng dẫn, dạy bảo thầy em nghĩ thu hoạch em khó hồn thiện Một lần nữa, em xin chân thành cảm ơn thầy Đồ án tốt nghiệp thực khoảng thời gian gần tháng Bước đầu vào thực tế, tìm hiểu lĩnh vực ngơn ngữ nghành lập trình, kiến thức em cịn hạn chế cộng đồng chưa có nhiều nên cịn nhiều bỡ ngỡ Do vậy, khơng tránh khỏi thiếu sót điều chắn, em mong nhận ý kiến đóng góp quý báu quý Thầy Cô bạn để kiến thức em lĩnh vực hoàn thiện Sau cùng, em xin kính chúc q Thầy Cơ Khoa Công Nghệ Thông Tin Thầy Hiệu Trưởng – TS Lê Tân thật dồi sức khỏe, niềm tin để tiếp tục thực sứ mệnh cao đẹp truyền đạt kiến thức cho hệ mai sau Em xin chân thành cám ơn Đà Nẵng, ngày 30 tháng 05 năm 2016 Sinh viên thực (ký ghi họ tên) Nguyễn Công Phƣớc i MỤC LỤC Trang LỜI CẢM ƠN i MỤC LỤC ii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT .iv DANH MỤC CÁC BẢNG v DANH MỤC CÁC HINH VẼ, DỒ THỊ .vi MỞ ĐẦU .1 PHẦN 1: CƠ SỞ LÝ THUYẾT 1.1 Nguồn gốc hệ điều hành iOS lịch sử phát triển: 1.1.1 Nguồn gốc hệ điều hành iOS 1.1.2 Lịch sử phát triển 1.1.3 Các phiên hệ điều hành iOS 1.2 Đôi nét lập trình iOS Swift mơi trƣờng lập trình iOS 12 1.2.1 Đơi nét lập trình iOS Swift .12 1.2.2 Mơi trường lập trình iOS 12 1.3 Giới thiệu phần mềm XCode máy ảo iOS Simulator .13 1.3.1 Giới Thiệu Về phần mềm Xcode 13 1.3.2 Giới Thiệu iOS Simulator 15 PHẦN 2: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 16 2.1 Các tính XCode iOS Simulator 16 2.1.1 Các tính XCode 16 2.1.2 Các tính iOS Simulator 27 2.2 Cơ ngôn ngữ lập trình iOS Swift 34 2.2.1 Những quy ước ngôn ngữ lập trình Swift 34 2.2.2 Biến (VARIABLE) số (CONSTANT), cách khai báo biến số 35 2.2.3 Kiểu liệu 36 2.2.4 Các phép toán 36 2.2.5 Hàm (Function) 36 2.2.6 Cấu trúc điều kiện .38 2.2.7 Cấu trúc lặp 40 ii 2.2.8 Mảng (Array), Từ điển (Dictionary) Tuples 42 2.2.9 Chuỗi .44 2.3 Một số thao tác lập trình iOS .44 2.3.1 App icon .45 2.3.2 Loading Screen .46 2.3.3 Thay đổi App Name 47 2.3.4 Ẩn status bar 48 2.3.5 Background 49 2.3.6 Thêm framework 53 2.4 Một số đối tƣợng 54 2.4.1 Đối Tượng Label 54 2.4.2 Đối Tượng Button .54 2.4.3 Đối Tượng Text Field 55 PHẦN : PHÂN TÍCH VÀ THIẾT KẾ 57 3.1 Giới thiệu toán 57 3.2 Mơ hình hóa u cầu 57 3.2.1 Xác định tác nhân 57 3.2.2 Xác định trường hợp sử dụng (Use case) .57 3.2.2.1 Liệt kê trường hợp sử dụng .57 3.2.2.2 Đặc tả trường hợp sử dụng .57 3.2.2.3 Biểu đồ trường hợp sử dụng 58 3.3 Mơ hình hóa khái niệm 59 3.3.1 Các lớp biên 59 3.3.2 Các lớp điều khiển 59 3.4 Biểu đồ hoạt động 60 PHẦN 4: GIỚI THIỆU SẢN PHẨM GAME FLAPPY BIRD TRÊN NỀN TẢNG IOS 61 4.1 Tổng quan ứng dụng game Flappy Bird tảng iOS 61 4.2 Giao diện ứng dụng Game Flappy Bird 62 KẾT LUẬN 66 HƢỚNG PHÁT TRIỂN 67 TÀI LIỆU THAM KHẢO 68 iii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT CÁC CHỮ VIẾT TẮT: iOS Internetwork Operating System Hệ điều hành iOS chạy điện thoại iPhone Mac OS X Hệ điều hành Macintosh chạy máy tính Mac iv Số hiệu bảng DANH MỤC CÁC BẢNG Trang 2.1 36 2.2 Tên bảng 36 2.3 Các kiểu liệu Swift 38 Các phép toán Swift Các tốn tử so sánh thơng dụng v Số hiệu DANH MỤC CÁC HINH VẼ, DỒ THỊ Trang hình vẽ Tên hình vẽ 1.1 1.2 Giao diện iPhone OS 1.x 1.3 Giao diện iPhone OS 2.x 1.4 Giao diện bàn phím nằm ngang tính copy & paste 1.5 Giao diện chỉnh sửa video 1.6 Giao diện iOS Trình phát nhạc 1.7 iOS phiên cho phép người dùng cập nhật firmware qua giao thức OTA (over-the-air) 1.8 Giao diện iOS 10 1.9 Giao diện iOS 11 1.10 Giao diện iOS 11 1.11 Giao diện iOS 13 1.12 Cửa hàng Apple Store trực tuyến 13 1.13 Phiên Xcode trang Apple 14 1.14 Tải Xcode từ trang Developer 15 1.15 Cài đặt Xcode qua Apple Mac Store 16 2.1 Giao diện Navigator 17 2.2 Giao diện ứng dụng 17 2.3 Giao diện code 18 2.4 Giao diện quản lý chi tiết 18 2.5 Activity viewer 19 2.6 Toolbar Utility Area 19 2.7 Utility area 20 2.8 Kéo thả đối tượng vào giao diện 21 2.9 Canh chỉnh vị trí theo đường kẻ xanh 21 2.10 Thay đổi thuộc tính đối tượng 22 2.11 Tìm kiếm Library 22 2.12 Hai tập tin sử dụng để viết code cho ứng dụng vi 2.13 Ánh xạ đối tượng vào tập tin h 23 2.14 Lựa chọn kiểu ánh xạ 23 2.15 Gợi ý khắc phục lỗi 24 2.16 Chia đơi hình Editor để tiện làm việc 24 2.17 Tùy chỉnh Font & Color cho giao diện lập trình code Xcode 25 2.18 Lựa chọn thiết bị iOS Simulator 25 2.19 Nhấn Stop để dừng chương trình 26 2.20 Vùng Debug Navigator 26 2.21 Vùng Debug area 26 2.22 Đánh dấu Breakpoint 27 2.23 Thu gọn đoạn code 27 2.24 Chọn Run để mở iOS Simulator 28 2.25 Mở iOS Simulator Menu 28 2.26 Trong menu chọn Quit iOS Simulator 29 2.27 Trong menu chọn xoay hình iOS Simulator 29 2.28 Ẩn/Hiện keyboard iOS Simulator 30 2.29 Gỡ ứng dụng iOS Simulator 30 2.30 Tải thêm iOS Simulator phiên cũ tài liệu 31 2.31 Chụp ảnh hình iOS Simulator 31 2.32 Chọn Select Select All 32 2.33 Lựa chọn chuỗi cần copy chọn Copy 32 2.34 Paste từ Mac OS vào iOS Simulator 33 2.35 Chọn Paste 33 2.36 Icon 45 2.37 Kéo thả icon vào vị trí 45 2.38 Icon iOS simulator 46 2.39 Chuẩn bị Background 46 2.40 Kéo thả background image vào Lauch Image 47 2.41 Truy cập tập tin plist 47 2.42 Sửa đổi Bundle display name 48 vii 2.43 Thay đổi tên iOS Simulator 48 2.44 Thêm dòng 48 2.45 Chọn giá trị Yes 49 2.46 Thanh trạng thái Status bar 49 2.47 Background Image 50 2.48 Chép hình ảnh vào Project 50 2.49 Kéo thả UIImage View vào Project 50 2.50 Lựa chọn hình ảnh làm background 51 2.51 Thay đổi background image 51 2.52 Attributes inspector 52 2.53 Chọn màu 52 2.54 Background thay đổi 52 2.55 Link Frameworks and Libraries 53 2.56 Chọn Framework 53 2.57 Chọn Add 53 2.58 Label 54 2.59 Thuộc tính Label 54 2.60 Button 55 2.61 Thuộc tính button 55 2.62 Text Field 56 2.63 Thuộc tính Text Field 56 3.1 Biểu đồ trường hợp sử dụng Người chơi 58 3.2 Các lớp biên 59 3.3 Lớp điều khiển 59 3.4 Biểu đồ hoạt động 60 4.1 Màn hình Giới thiệu chạy Game máy ảo iOS 62 4.2 Giao diện ứng dụng Game 63 4.3 Giao diện ứng dụng Game 64 4.4 Giao diện ứng dụng Game 65 viii Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird tảng IOS MỞ ĐẦU Lý chọn đề tài Với phát triển nhanh chóng khoa học cơng nghệ đặc biệt ngành công nghệ thông tin, làm bước thay đổi sống người ứng dụng sản phẩm công nghệ Điện thoại di động thứ thiếu sống Đặc biệt điện thoại thông minh Cả giới công nhận rằng: Sự thành công iPhone phần lớn đến từ tảng iOS, không tối ưu với phần cứng, tảng cịn có tính bảo mật cao Apple với iPhone thay đổi hồn tồn lịch sử ngành cơng nghệ di động, mở khái niệm hoàn toàn khiến hãng cạnh tranh phải chạy theo Song song với thành cơng thiết bị hệ điều hành iOS độc quyền hãng Năm 2016, bên cạnh iPhone, iPad, chứng kiến bom mắt Apple Watch, Apple Tivi cịn biết bí mật khác mà Apple chuẩn bị tung thị trường Cũng vậy, mà việc làm dành cho Lập trình viên iOS ngày tăng dội Swift ngơn ngữ lập trình hướng đối tượng dành cho việc phát triển iOS OS X, giới thiệu Apple hội nghị WWDC 2014 Đây ngôn ngữ tiềm năng, thừa kế từ Objective-C dễ học Objective-C, để tiếp cận Swift Objective-C ngơn ngữ mà lập trình viên iOS cần phải nắm vững Swift thiết kế ngơn ngữ có khả phịng chống lỗi cao Nó biên dịch với trình biên dịch LLVM Điểm yếu lớn Swift có lẽ tuổi đời q trẻ ngơn ngữ lập trình Cụ thể hơn, để sử dụng Swift, nhà phát triển phải học lại ngơn ngữ lập trình hồn tồn Và cộng đồng chưa có nhiều, Các nhà phát triển ứng dụng iOS khoảng thời gian đáng kể để làm chủ ngôn ngữ Apple Và lập trình viên gia nhập vào ngơi nhà lập trình iOS, Objective-C ngơn ngữ phải nắm tảng cho việc tiếp cận Swift Điều làm cho lập trình iOS ngày khó Mục đích đề tài lần tìm hiểu ngơn ngữ lập trình mới, nghiên cứu xây dựng ứng dụng thực tế Em mong qua đề tài này, em có thêm nhiều động lực tảng để bước tiếp đường đam mê lập trình iOS Nguyễn Công Phước – CCLT07A Nghiên cứu lập trình IOS Swift - Ứng dụng lập trình game Fappy Bird tảng IOS Đây lý mà em chọn đề tài làm đề tài tốt nghiệp Mục tiêu nhiệm vụ nghiên cứu Nhằm tìm hiểu nghiên cứu để biết cách thức xây dựng ứng dụng mang tính thực tế hệ điều hành IOS, tìm hiểu thêm ứng dụng game hệ điều hành IOS cách tạo Hiểu nguyên lý hoạt động IOS, thành phần hệ thống ứng dụng thực thi tảng IOS Áp dụng thiết kế ứng dụng game Flappy Bird chạy tảng IOS Đối tƣợng phạm vi nghiên cứu o Đối tƣợng: Ngôn ngữ Swift Công cụ phát triển ứng dụng XCode iOS SDK Máy ảo iOS Simulator Hệ điều hành tài nguyên hệ thống IOS o Phạm vi: Nghiên cứu cách thức tạo nên ứng dụng IOS Các thao tác Nghiên cứu ngôn ngữ Swift Phƣơng pháp nghiên cứu Nghiên cứu thu thập tài liệu, phương pháp để ứng dụng liên quan đến đề tài Sử dụng trực tiếp hệ điều hành Mac OS X để cài đặt sử dụng Tiếp cận ngôn ngữ Swift qua tài liệu liên quan Ý nghĩa khoa học thực tiễn o Ý nghĩa khoa học: Hiểu ngôn ngữ Swift cách thức tạo nên ứng dụng IOS o Ý nghĩa thực tiễn: Thiết kế ứng dụng game Flappy Bird iOS Nguyễn Công Phước – CCLT07A