Course Outline
Basic Concepts of Programming for Government
- Object-Oriented Programming (OOP) concepts
- Definition of software
- Analogies in programming: organized vs. unorganized environments
- The importance of software in government operations
Why Apple and iOS for Government
- Reasons to choose iOS
- A brief history of Apple
- Timeline of iOS development
- Apple's unique selling propositions (USPs)
- Key areas where Apple excels
- User Experience (UX) vs. User Interface (UI)
Development Environment for Government
- Requirements for setting up a development environment
- Xcode and the iOS Software Development Kit (SDK)
- Registration process for Apple Developers
- Common reasons for application rejections
- Guidelines for Human Interface Design
Xcode iOS Projects for Government
- An overview of Xcode capabilities
- Steps to create an iOS project
- Running applications on simulators and physical devices
Swift Basics for Government
- Comparing Objective-C with Swift
- Key features of Swift
- Introduction to variables and constants
- A simple "Hello World" program in Swift
- Creating UILabel elements programmatically
Image Animation and Image Loading for Government
- Using UIImageView for image display
- Basic animations with UIView and UIImageView
- Exploring the Swift Playground
- Implementing lazy loading of images
- Understanding lazy properties
Swift Classes and Scenes for Government
- Creating custom Swift classes
- Memory management techniques
- Differentiating strong and weak references
- Types of constructors and destructors in Swift
- Implementing protocols, Hashable, and Printable interfaces
- Inheritance principles in Swift
- Creating scenes for user interfaces
- Implementing View Controllers
- Exploring the Swift Playground
Life Cycle and Responder Chain for Government
- The view life cycle in iOS applications
- The application life cycle management
- Responder chain methods: touchBegan, touchMoved, etc.
- Using NSTimer for timing events
Adaptive Layout for Government
- Storyboards vs. XIB files
- Supporting multiple devices and screen sizes
- Managing icon sizing and device orientations
- Building user interfaces programmatically
- Working with outlets and actions
- Implementing required and optional protocols
- Memory management best practices
Notifications and Localization for Government
- Push notifications: silent and visible
- Localization of applications
Overview of Objective-C for Government
- Properties in Objective-C
- Categories in Objective-C
- Syntax for functions in Objective-C
- Property attributes: readWrite and readOnly
Social Media Integration in iOS for Government
- Integrating Facebook into applications
- Integrating Twitter into applications
- Email integration within iOS apps
- Integrating third-party applications
UI Components in iOS for Government
- UITextField for text input
- UITextView for multi-line text input
- UISegmentedControl for segment selection
- UISlider for value adjustment
- UISwitch for on/off states
- UIPageControl for page navigation
- UIStepper for incrementing values
- UIScrollView for scrollable content
- UIPickerView for selecting from a list
- UIActionSheet for presenting options
- UIWebView for displaying web content
- UISearchBar for search functionality
Other Basic Components in iOS for Government
- Managing groups and folders in projects
- Closures for concise code blocks
- Tuples for combining multiple values
- URLSession for network requests
- URLRequest for creating HTTP requests
- UIAlertView for alert messages
- UIActivityIndicatorView for loading indicators
- Access modifiers: internal, public, private
- Using guard statements for safer code
- Handling optionals in Swift
Threading in iOS for Government
- Grand Central Dispatch (GCD) for task management
- NSOperationQueue for queuing tasks
- Differentiating main thread from background threads
User Interaction for Government
- Button creation and event handling
- Pan gesture recognition for sliding actions
- Tap gesture recognition for touch events
- Customizing table views for data display
- Basics of collection view implementation
Multiple Screen Applications for Government
- Navigating through table views
- Designing tabbed applications
- Using navigation controllers for hierarchical structures
- Presentation of controllers with various animations
Location Services for Government
- Determining position and altitude
- Compass direction detection
Device Access and Storage for Government
- File storage mechanisms
- Accessing the music library
- Data management with CoreData and SQLite
- Using Keychain for secure data storage
- User defaults for persistent settings
- PLists for property list files
- NSSearchPathDirectory for directory management
- Ensuring app security with NSSearchPathDirectory
Speech Framework for Government
- Converting speech to text
- Converting text to speech
Multipeer Framework for Government
- Transferring data between devices
- Connecting multiple devices simultaneously
Networking for Government
- Accessing network resources
- Serializing and deserializing JSON data
- Interacting with REST web services
- Basics of XML parsing
Uploading App to the App Store for Government
- Using iTunes Connect for app management
- Navigating the Apple Developer Portal for provisioning profiles
- Deployment and distribution strategies
- Testing apps on real devices
- Uploading apps to the App Store
Applications for Government
- Dots Game:
https://itunes.apple.com/app/the-dots-free/id850315430 - Notes application
- Contacts application
- Data retrieval from an open API to populate a table view and display details, including search functionality and offline data storage with Core Data
- An application based on your own idea
Requirements
For government professionals, it is essential to possess experience in at least one programming language.
Testimonials (4)
The way of transferring knowledge and the knowledge of the trainer.
Jakub Rekas - Bitcomp Sp. z o.o.
Course - Machine Learning on iOS
The instructor tried to make things dynamic, and he demonstrated dominance of the topic.
Libranner Santos
Course - iOS Automation Testing
He's an experienced trainer with a real life experience in the topic he was teaching. That led the course to cover the most important topics which interests any developer working in the field, and small details would be easily overseen if he was not working in this platform. Moreover, he was giving the course using the latest versions of is and Swift (10 \ 3) and that is a huge advantage to be adapting such new technology in short time.
Abdullah Alaradi - Thiqah Business Services
Course - iPhone and iPad Development in Swift for iOS 8 and Xcode 6
Antonio gave is much background information, best practices and showed us useful tools to speed up our development process.