1. Chương trình đào tạo “iOS 7 Application Development”
Giới thiệu
Những năm gần đây, iPhone hay iPad đã trở thành chiếc những thiết bị di động rất phổ biến
với các bạn trẻ đặc biệt là các bạn đam mê CNTT. Hầu hết mọi người dùng iPhone đều có
một cảm nhận giống nhau, đó là sự hoàn hảo của chiếc điện thoại đó từ thiết kế đến các
phần mềm hay game. Cùng với sự tăng trưởng chóng mặt của iPhone là sự bùng nổ các
ứng dụng trên nền tảng iOS và cơ hội kiếm tiền của rất nhiều Doanh nghiệp Phần mềm cũng
như Lập trình viên Di động.
Hệ thống đào tạo Lập trình viên Quốc tế FPTAptech trân trọng giới thiệu chương trình đào
tạo “iOS 7 Application Development” từ cơ bản đến nâng cao. Với tiêu chí “học thật ra
sản phẩm thật”, bạn sẽ được huấn luyện cách phát triển 1 ứng dụng iOS hoàn chỉnh dựa
trên mô hình dự án thật, phương pháp phát triển phần mềm linh hoạt Agile, và biết cách kiếm
tiền từ những sản phẩm do chính mình sáng tạo nên.
Kết thúc khoá học, bạn có thể:
● Áp dụng được quy trình phát triển phần mềm linh động Agile trong các dự án phần
mềm trên nền tảng iOS 7
● Xây dựng được 1 ứng dụng iOS hoàn chỉnh từ khâu thiết kế đến đưa sản phẩm lên
App Store
● Hiểu biết sâu sắc về iOS 7 và những công nghệ mới nhất của Apple
Ai nên tham gia chương trình đào tạo iOS 7 Application Development?
● Lập trình viên đang đi làm tại các doanh nghiệp
● Những bạn trẻ yêu thích lập trình iOS
● Các bạn sinh viên ngành IT muốn có một nghề hot với lương bổng hấp dẫn
Yêu cầu
● Sinh viên có kiến thức lập trình căn bản
● Sinh viên có kiến thức lập trình OOP là một lợi thế
● Sinh viên có kiến thức cơ bản về XML
Thời gian học
● Tổng số buổi: 30
● Ngày học: 2 buổi / tuần
● Thời gian: 2 giờ / buổi
Tham gia chương trình đào tạo iOS 7 Application Development, các bạn được:
● Phát triển toàn diện kỹ năng thiết kế giao diện đồ hoạ Mobile (UI/UX)
● Học trên quy trình phát triển phần mềm linh hoạt Agile
● Thực hành trên những thiết bị và nền tảng lập trình iOS mới nhất
● Hỗ trợ đưa sản phẩm cuối khoá lên App Store
● Hướng dẫn cách kiếm tiền từ những sản phẩm do chính mình tạo ra
1
2. Môi trường và thiết bị thực hành
● Macbook core i5, 4GB Ram, có cài đặt Mac OS X 10.9, iOS 7 SDK (laptop khác thì
thấp nhất 8GB Ram)
● Thực hành 50% trên simulator, 50% học trên thiết bị di động iOS (iPhone, iPad)
● Công cụ và tài nguyên
○ Công cụ: Xcode 5, UXPin, Sketch, PaintCoder, Unity 3D
○ Tài nguyên:
■ Tài liệu tham khảo:
➢ https://developer.apple.com
➢ https://developer.apple.com/devcenter/ios/index.action
➢ http://www.appcoda.com
➢ http://laptrinhios7.wordpress.com
■ Tài nguyên khoá học:
➢ Lab guide và tài liệu tham khảo:
○ http://slideshare.com
○ Google Docs
➢ Demo và video:
○ https://github.com/laptrinhios7/iadcourse
○ http://www.youtube.com/laptrinhios7
■ iOS open source:
➢ https://www.cocoacontrols.co
■ Protyping tool (UI/UX):
➢ http://bohemiancoding.com/sketch/
➢ https://proto.io
➢ https://www.flinto.com
Học phí cho khoá học
● 2 3 thành viên / nhóm
● 5M / thành viên
Chi phí thực tế:
● Macbook Pro: 25M
● iPhone: 10M
● Tài khoản Apple ID: 2M / năm
● Học phí: 5M / khoá
Phương pháp đào tạo
Phương pháp đào tạo hiện đại dựa trên mô hình dự án thật của các công ty hàng đầu về
phát triển phần mềm như FPT Software, Tinh Vân, CMC... Ngay từ buổi thứ 2, các bạn sinh
viên sẽ được giới thiệu về quy trình phát triển phần mềm Agile và sau đó phân nhóm (mỗi
nhóm từ 2 đến 4 người). Các thành viên trong nhóm sẽ cộng tác chặt chẽ với nhau trong
2
3. từng buổi học và được giảng viên hướng dẫn, hỗ trợ nhiệt tình để cuối khoá có thể báo cáo
sản phẩm hoàn thiện của nhóm.
Nội dung chương trình đào tạo
Session Subject Project
1
Introduction to iOS 7 and SDK
● Overview of course
● Why you are here?
● Introduction to Mac OSX, iOS and iOS SDK
● New features in iOS 7
● Installing Xcode 5 and iOS 7 SDK
● iOS 7 architecture and SDK frameworks
● ObjectiveC introduction
● Overview of Xcode 5 IDE
● Building the first iPhone App: Hello FPT
○ Creating Single View project in Xcode
○ Designing View, UI using Storyboard
○ Running Hello FPT Application on iOS 7 Simulator
2
ObjectiveC Basics
● ObjectiveC introduction
● Variables, data types and pointer
● Basic statements
○ Conditions (if, switch)
○ Loops (for, while, do... while)
● Array
● Functions
● Exceptions
Lab 1: ObjectiveC
Basics
3
Object Oriented Programming (OOP) with
ObjectiveC (Part 1)
● Concepts of OOP
● Classes and objects
● Properties
● Methods
Lab 2: OOP
4
Object Oriented Programming (OOP) with
ObjectiveC (Part 2)
● Customizing existing Classes by inheritance,
category, extension
● Working with blocks
● Working with protocols
5
Foundation Framework
● Introduction to Foundation Framework
3
4. ● NSNumber, NSDecimalNumber
● NSString, NSMutableString
● NSSet, NSMutableSet
● NSArray, NSMutableArray
● NSDictionary, NSMutableDictionary
6
Overview of Agile process in Mobile Application
Development
● Introduction to Agile Process
● Explain the details of each step in Agile process
● Integrating Xcode 5 with Git
● Source code management using GitHub
Project #1:
Building team and
choose project
subject
7
Overview of the iOS 7 Application Development
Architecture
● Start Developing iOS Apps Today
● Fundamental iOS design patterns and techniques
○ ModelViewController
○ Delegation
○ TargetAction
○ Block objects
○ Sandboxing
● Overview of View Controller
8
Xcode 5 and Interface Builder for iOS 7 Application
● Exploring Single View Application project in Xcode 5
● Setting Project info (target device, platform, testing,..)
● Introduction to Interface Builder for iOS 7 App
(Storyboard, Sence, Segue,...)
● Overview of UIControls in iOS 7
● Understanding View, Window and View Hierachy
● Working with AutoLayout in OS 7
● Handling basic interaction in iOS 7
● Demo: Completing Hello FPT Application
● Assignment: Converting F to C Application
9 10
UI/UX Design for iOS 7 Application
● What is UI/UX?
● Design thinking
● Lean UX design process
● iPhone app and device overview
● iOS 7 UI design basics
● Icon and image design
● UI/UX design strategies
● Practicing UX design
11 Project Review 1 Project #2: Project
4
5. Submit UI/UX design of each group review
12
Overview of Multitouch, Taps and Gestures
● Introduction to the Responder Chain
● Introduction to Gestures, Taps and Touches
● Getting and analyzing the coordinates of a Touch
● Using iOS Gesture Recognizers (Tap, Touch, Long
Touch, Swipe, Pan, Pinch, Rotate)
● Developing iOS Gesture Recognition Application
○ Creating the Gesture Recognition Project
○ Designing the User Interface
○ Implementing the Action methods
○ Testing the Gesture Recognition Application
13
Working with Navigation and Tab Bar
● iOS 7 app anatomy
● Navigation controllers introduction
● Understanding application data flow
● Working with navigation bar
● Working with toolbar
● Tab bar controllers introduction
● Customizing tab bar appearance
● Working with tab bar
● Combining navigation and tab bar controllers
● Demo: NavBar, Toolbar, MoreTabBar Application
14
Working with Table View and Search Bar
● Introduction to Table View
● Customizing the table view appearance
● Navigating a data hierarchy with table views
● Table view manipulation
● Introduction to search bar
● Customizing search bar appearance
● Working with search bar in table view
● Demo: Mail App, Products Management App, Library
Management App,...
5
6. 15
Working with Image, Scroll, Collection, Picker, and
Web View
● Introduction to image view
● Working with scroll view
● Zooming image with scroll view
● Working with collection view
● Building photo album using image and collection view
● Introduction to picker view
● Displaying date, time and country list using
UIPickerView – UIDatePicker
● Introduction to Web view
● Building iOS application to view Web and PDF
16
Designing Universal Interface which used for iPad
and iPhone
● Overview of all screen sizes for iPhone and iPad
● Checking iOS device functions and version of iOS
● Using UISplitViewController – UIPopOverController
● Process User Interface of iOS devices for Portrait –
Landscape Orientation
17
Working with Core Graphic, Core Image and Core
Animation
● Creating shapes and drawing in iOS
● Accessing photos from Photo Album or in Camera
● The basics of Image Filter
● Changing the Image Filter value
● Saving Images after editing to Photo Album
18
Audio – Video Programming
● Playback processing, playing music – video and
changing the volume
● Sound recording and get thumbnail in video
16
Core Motion Programming
● Reading data from accelerometer (cảm biến gia tốc)
and gyroscope (cảm biến con quay hồi chuyển)
● Recognition saking the iOS devices
● Demo: Core Motion Application
19
Map and Location Service in iOS 7 (MapKit)
● Introduction to UIMapKit – MapKitAnnotation –
MKOverlay
● Display map and location information
● Detecting the coordinates of user
● Following the movement coordinates Changing the
address information and coordinates by GeoCoder
6
7. ● Demo: Map Integrated Application
20
Working with MessageUI and Address Book
● Composing mail and SMS in iPhone app
● Searching and Displaying all contacts or by filter
● Creating a new contact or a group in Address Book
● Editing and Deleting information, image of the contact
21
Concurrency Programming
● Concepts of concurrency – synchronous –
asynchronous
● Multithreading programming using NSThread and
Locking
● Working with Timer, Grand Central Dispatch and
NSOperation
22
Core Data Programming
● Introduction to ORM architecture
● Working with Core Data components in iOS:
ManagedObjectContext, PersistenceStoreCoordinator
● Adding, Editing, Deleting and Searching the records
using Core Data
23
SQLite Programming
● Overview of FMDB library wrapping SQLite
● Using Lita SQLite Administration or SQLiteManager
Firefox addon to manage SQLite data file
● Using SQL statements: SELECT, INSERT, UPDATE,
DELETE, JOIN
24
Data Sharing Programming with iCloud
● Connecting to iCloud
● Saving, Synchronizing and Searching files and
directories on iCloud
26
Network Programming and Social Network
Integrating
● Network Programing
○ Concepts of Network
○ Overview of NSURLConnection, NSURLRequest,
NSURLDownload
● Working with Web services
○ XML
○ JSON
○ HTTPStreaming
○ Restful
● Integrating iOS Application with Social Network
7
8. ○ Facebook
○ Twitter
27
Debuging, Testing and Optimizing iOS Applicaiton
● Executing Unit Test for iOS Application
● Register Apple Developer Account
● Using Apple Developer Provisioning Portal and add
your device to test iOS Application
● Code Signing for your application and Deploying your
Application on your device
● Publish your application on AppStore
28
Game Development on iOS 7
● Building Game using UIKit and Core Graphic
● Developing iOS 7 Game based on SpriteKit
framework
● Working with Game Center
● Overview of 3D Game Development using Unity 3D
29
Business Strategies & Marketing for iOS Application
● Introduction to AppStore
● Final touches of an iOS Applicaton (icons and launch
images)
● Using tools to report your iOS Applicaton
● Business strategies for your iOS Applicaton
○ Free
○ Paid
○ Free and Paid
○ Free and iAD
○ inApp purchase
● Marketing for iOS Application
○ Video trailer for your Application
○ Creating website and virtual company
○ Pressrelease and PR
○ Social Network Ad
30
Project Review 2
Review the projects of students
Project #3: Final
review
31
Project Submission
Students present and demonstrate their games
Project #4: Project
evaluation
8