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
Testimonials (2)
The way of transferring knowledge and the knowledge of the trainer.
Jakub Rekas - Bitcomp Sp. z o.o.
Course - Machine Learning on iOS
The trainer was very knowledgeable and dynamic, keeping engagement and focus of the team during the whole training. I would definitely recommend it as I reckon learnings from this training can be quickly applied to our everyday development workflow.