0% found this document useful (0 votes)
17 views27 pages

Date - 30-09-2023

Uploaded by

bhumitboraniya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views27 pages

Date - 30-09-2023

Uploaded by

bhumitboraniya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

iOS

DATE - 30-09-2023

N o v 2 2 , 2 0 2 2

Confidential Information – For intended recipients only. Apexon, Copyright © 2022 Infostretch Corporation. All rights reserved.
Agenda
• Theory
• Tools Required for iOS Development
• iOS Architecture
• iOS Security
• iOS App lifecycle
• How does Xcode work when we build the iOS app project.
• App Store
• Advantages of iOS
• iOS Challenges
• Programming language – Swift
• Frameworks – UIKit, SwiftUI
• Map

• Hands-On Exercises
Tools Required for iOS Development
• Apple Device:
• You'll need an Apple device, preferably a Mac computer, as iOS app development
primarily takes place on macOS. A Mac desktop or laptop is essential for running the
necessary development tools.
• Operating System:
• Ensure that your Mac is running the latest macOS version or a compatible version for
iOS app development. You'll need a recent version to use the latest development
tools.
• Xcode:
• Xcode is the official integrated development environment (IDE) provided by Apple for
iOS app development. It includes tools for coding, debugging, testing, and deploying
apps. You can download Xcode for free from the Mac App Store.
• iOS SDK (Software Development Kit):
• Xcode includes the iOS SDK, which contains essential libraries, frameworks, and
tools required for iOS app development.
• Apple Developer Account:
• You'll need to sign up for an Apple Developer account, which is essential for creating
and distributing iOS apps. There are free and paid developer account options
available.
• Programming Knowledge:
• To develop iOS apps, you'll need to have programming knowledge. Apple's primary
iOS Architecture
The iOS architecture refers to the underlying structure and design of the Apple iOS
operating system, which powers iPhones, iPads, and iPod Touch devices.

• Core OS Layer: It manages tasks like memory management, process scheduling, and
hardware abstraction.
• Core Services Layer: This layer includes fundamental system services and frameworks
• Media Layer: OS provides a suite of media for audio and video handling, graphics
rendering animation rendering.
• Cocoa Touch Layer: Cocoa Touch is responsible for the user interface (UI) components
and interactions on iOS devices.
iOS Security
• Device Encryption:
• iOS employs hardware-based encryption to protect user data. All data stored on the
device is encrypted with a unique key tied to the device's hardware. This encryption
includes user files, app data, and system data.
• App Sandboxing:
• Each iOS app runs in its own sandboxed environment, isolated from other apps and
the underlying operating system. This sandboxing restricts an app's access to
system resources and data, enhancing security and privacy.
• Code Signing:
• All iOS apps must be signed with a digital certificate issued by Apple. The code
signature ensures that apps have not been tampered with and verifies their
authenticity before installation.
• App Permissions:
• iOS employs a permission model where apps must request user permission to access
sensitive data or device features, such as the camera, microphone, location, and
contacts. Users have granular control over these permissions.
• Face ID and Touch ID:
• Apple's biometric authentication methods, Face ID and Touch ID, provide secure and
convenient ways for users to unlock their devices, make payments, and authenticate
within apps. Biometric data is stored in a secure enclave and never leaves the
device.
iOS Security
• App Store Review Process:
• Before apps are published on the App Store, they undergo a rigorous review process
by Apple. This process checks for security vulnerabilities, malicious code, and
adherence to App Store guidelines.
• Data Protection APIs:
• iOS provides Data Protection APIs that allow app developers to encrypt sensitive user
data with a user's passcode. This encryption ensures that data is inaccessible when
the device is locked.
• Secure Enclave:
• iOS devices incorporate a hardware-based Secure Enclave, a separate processor that
handles cryptographic operations related to biometrics, device encryption, and
secure key storage. It is isolated from the main processor.
iOS App lifecycle
iOS App lifecycle
• Not Running:
• When the app is not in use, it is in the "Not Running" state. This typically occurs
when the app has not been launched or has been terminated by the user or the
system.
• Inactive:
• The "Inactive" state occurs briefly when the app is transitioning from the
background to the foreground or vice versa. During this state, the app is not
actively executing code.
• Active:
• The "Active" state is when the app is in the foreground and actively executing
code in response to user interactions. This is the state where the app's user
interface is visible and responsive to user input.
• Background:
• When the user presses the home button or switches to another app, the app
enters the "Background" state. In this state, the app is not actively visible but
can continue to execute code and perform tasks such as playing music or
updating location data.
• Suspended:
• Apps that are in the "Background" state may eventually transition to the
"Suspended" state. In this state, the app is not actively running any code.
However, it remains in memory, allowing it to resume quickly when brought back
How does Xcode work when we build
the iOS app project
Next Milestone: New Architectural Framework for Reporting DB initiative
Milestone Estimation Date: 25-Nov-2022

Summary:

• Completed
• Optimization of report queries shared
• Best practice recommendations for queries shared.
• Draft Architectural Framework for Reporting DB initiative

• On going
• Optimizing new queries. Will start once we receive these from Nikunj (expected EOD 22/Nov)
• Analysis of exiting all reports and related tables in Dev DB for modeling Target DB in progress.
• Identifying resources for the initiative - in progress - roles – Team Lead/QA Analyst, Data Modeler
(50%), Data Engineers(2), DB developer(1)
• Working draft Project Plan for Phase 1 in progress.

• Challenge/Help required
How does Xcode work when we build
the iOS app project
.swift will be translated into the assembly files by the LLVM in the swift compiler process,
and finally become a binary file (.o), which is a binary file is used to create an executable
app. and how to create the executable app from the binary file ? in here we need the
linking process, so basically Linker is the computer system program that combines one or
more object files into a single binary or executable.
App Store
The App Store for iOS is a digital marketplace and distribution platform created and
managed by Apple. It is the primary source for iOS users to discover, download, and
update mobile applications designed for iPhones, iPads, and iPod Touch devices. The
App Store plays a central role in the iOS ecosystem and has several key features and
functions:

• App Discovery:
• The App Store provides a vast catalog of iOS applications across various
categories, including games, productivity, entertainment, education, and more.
Users can browse and search for apps to discover new and useful software.
• App Download and Installation:
• Users can download apps from the App Store and install them on their iOS
devices with just a few taps. App installations are secure, and users can review
app permissions before installation.
• App Updates:
• App developers regularly release updates to enhance functionality, fix bugs, and
improve security. The App Store notifies users when app updates are available,
and they can easily update all apps or select specific ones.
App Store
• App Ratings and Reviews:
• Users can rate and review apps based on their experiences. These ratings and
reviews help others make informed decisions about which apps to download.
Developers value positive reviews and feedback.
• App Categories:
• The App Store categorizes apps to make it easier for users to find what they're
looking for. Categories include Top Charts, Featured Apps, Games, Productivity,
Health & Fitness, and many more.
• Editorial Recommendations:
• Apple's editorial team curates collections of apps, highlighting those they
consider noteworthy or innovative. These collections appear in the App Store's
Today, Games, and Apps sections.
• In-App Purchases and Subscriptions:
• Many apps offer in-app purchases (IAPs) and subscriptions to access premium
features or content. Users can make these purchases securely through the App
Store, and Apple manages the billing process.
App Store
• App Store Connect:
• App developers and publishers use the App Store Connect portal to submit and
manage their apps, monitor performance, and access resources and tools for app
development.
• App Review Process:
• Apple conducts a thorough review of each app submitted to the App Store to
ensure it meets quality and security standards. This process helps maintain a
secure and reliable app ecosystem.
• App Store on Multiple Platforms:
• The App Store is available not only on iOS devices but also on macOS, watchOS,
and tvOS platforms, allowing users to access apps across their Apple ecosystem.
iOS Advantages
• User-Friendly Interface:
• iOS is known for its intuitive and user-friendly interface. The clean design,
consistent layout, and easy navigation make it accessible to users of all ages and
backgrounds.
• App Ecosystem:
• The App Store provides access to a vast library of high-quality apps that are
carefully curated and reviewed. This extensive app ecosystem ensures users can
find apps for virtually any need or interest.
• Security and Privacy:
• iOS is renowned for its robust security features. It includes built-in encryption,
regular security updates, and app sandboxing to protect user data and privacy.
Users have control over app permissions.
• Regular Updates:
• Apple provides regular iOS updates that include bug fixes, performance
improvements, and new features. Users can keep their devices up-to-date with
the latest software enhancements.
• Accessibility Features:
• iOS offers a wide range of accessibility features, making it inclusive for users
with disabilities. Features like VoiceOver, Magnifier, and Guided Access enhance
usability.
iOS Advantages
• Multitasking and Productivity:
• iOS supports multitasking features, such as split-screen and slide-over, which
enhance productivity. Users can work on multiple apps simultaneously, making
the iPad a versatile tool for professionals.
• iCloud Integration:
• iCloud seamlessly syncs data, photos, and documents across iOS devices and
Macs. It simplifies data backup, sharing, and access across the Apple ecosystem.
• Strong Developer Support:
• iOS offers robust development tools, such as Xcode and Swift, making it
attractive to app developers. This results in a rich selection of high-quality apps.
iOS Challenges
• Cost of Ownership:
• iOS devices, such as iPhones and iPads, tend to be more expensive than many
Android alternatives. This can be a barrier for budget-conscious consumers.
• Closed Ecosystem:
• Apple maintains a tightly controlled ecosystem, which limits customization and
flexibility compared to open-source platforms like Android. Users have less
control over device settings and app installations.
• App Store Regulations:
• Apple's strict guidelines for the App Store review process can lead to the
rejection of apps that don't meet specific criteria. This can be frustrating for
developers and limit the types of apps available to users.
• Limited File Management:
• iOS restricts users from accessing the file system in the same way as desktop
operating systems. This can make it challenging to manage files and perform
certain tasks.
• Interoperability with Non-Apple Devices:
• iOS devices may not seamlessly integrate with non-Apple devices and services.
Compatibility with Windows PCs and some third-party products can be limited.
iOS Challenges
• Limited Customization:
• iOS limits the level of customization compared to Android. Users cannot change
default apps, alter the home screen layout extensively, or install apps from
outside the App Store without jailbreaking (which has its own risks).
• Repairability and Upgradability:
• Apple's designs prioritize slimness and aesthetics over repairability and
upgradability. This can result in higher repair costs and limited options for
hardware upgrades.
• Fragmentation (to a Lesser Extent):
• While iOS devices tend to receive updates for several years, fragmentation can
still be an issue as older devices may not support the latest iOS versions or
features.
• Learning Curve for New Users:
• iOS, while user-friendly, can have a learning curve for users transitioning from
other platforms due to its unique interface and gestures.
iOS UI Controls
Label: Displays static text.
Text Field: Accepts user input as single-line text.
Text View: Allows multiple lines of user input.
Button: Triggers actions when tapped.
Image View: Displays images or icons.
Table View: Organizes and displays data in a list.
Collection View: Presents data in a grid or custom layout.
Picker View: Provides a selection interface with a wheel or list.
Switch: Toggles between two states.
Slider: Adjusts values within a range.
Progress View: Indicates progress of a task.
Segmented Control: Allows selecting from a segmented set of options.
Stepper: Increments or decrements a value.
Activity Indicator: Indicates that a task is in progress.
Date Picker: Selects dates or times.
iOS UI Controls
Web View: Displays web content within the app.
Map View: Embeds maps and location services.
Scroll View: Enables scrolling for content that doesn't fit.
Page Control: Navigates between pages or content.
Alert Controller: Displays alert messages or prompts.
Navigation Bar: Provides navigation controls in a bar at the top.
Tab Bar: Switches between different app sections or views.
Toolbar: Contains additional controls in a bar at the bottom.
Search Bar: Adds search functionality to a view.
Stack View: Arranges subviews in a stack or grid.
Container View: Contains and manages child view controllers.
Swift
Swift is a powerful and user-friendly programming language developed by Apple. It's
known for its speed and safety features, making it ideal for iOS, macOS, watchOS, and
tvOS app development. Swift combines modern syntax with advanced features like
optionals and type inference, making code concise and easy to read. It also supports
object-oriented and functional programming paradigms, offering a versatile choice for
developers to create robust and efficient software for Apple's ecosystem.
UIKit and SwiftUI
UIKit: UIKit is Apple's traditional framework for building user interfaces in iOS and
macOS applications. It offers a wide range of components and tools to create visually
appealing and interactive interfaces. UIKit has been the primary UI framework for iOS
development for many years, providing developers with extensive customization
options and flexibility. While it has a steeper learning curve, it remains a powerful
choice for building complex and highly customized app interfaces.

SwiftUI: SwiftUI is Apple's modern and declarative framework for building user
interfaces in iOS, macOS, watchOS, and tvOS applications. Introduced in 2019, it
simplifies UI development by allowing developers to describe the interface and its
behavior in a concise and readable manner using Swift code. SwiftUI is known for its
simplicity, real-time previews, and cross-platform capabilities. It's an excellent choice
for developers looking to create dynamic and responsive user interfaces efficiently, and
it's gaining popularity as the future of UI development in the Apple ecosystem.
Mapkit
MapKit is a framework provided by Apple for iOS app developers, offering a set of tools
and APIs for integrating mapping and location-based services into iOS applications. It
enables developers to embed interactive maps, annotate specific locations, and
leverage various features related to mapping and geolocation.

Key Features of MapKit for iOS:

• Map Display:
• Developers can embed interactive maps directly within their iOS applications.
• Users can view standard map views or switch to satellite views.
• Annotations:
• MapKit allows developers to add markers, pins, and custom annotations to
specific locations on the map.
• Customization options are available for the appearance of annotation views.
• User Location:
• Developers can display the user's current location on the map.
• Real-time tracking of the user's location is supported.
• Geocoding and Reverse Geocoding:
• Geocoding converts addresses or place names into geographic coordinates
(latitude and longitude).
• Reverse geocoding retrieves location information from a set of coordinates
Mapkit
• Routing and Directions:
• MapKit enables developers to display routes and directions between two or more
locations.
• While it doesn't provide turn-by-turn navigation itself, it can launch the Apple
Maps app for navigation.
• Search and Points of Interest:
• Users can perform searches for locations, businesses, and points of interest using
the search bar.
• Detailed information about businesses, restaurants, and other places is available,
including reviews and contact information.
• Overlay and Shapes:
• Developers can overlay custom shapes, lines, and polygons on the map.
• Tile overlays allow the display of custom tile-based map overlays.
• Map Interaction:
• MapKit supports gesture recognition, allowing users to interact with the map
using gestures such as pinch-to-zoom and panning.
• Integration with Core Location:
• MapKit integrates with the Core Location framework to provide detailed location
information.
Hands-On Exercises
1. Develop an iPhone application to demonstrate use of buttons and labels. While tapping a button, a
message should be displayed in the label. Put button and label on view using drag and drop.

2. Develop iPhone application to demonstrate use of alert view. While tapping a button, an alert view should
be displayed with two different buttons. Also handle events generated by buttons of alert view
to demonstrate use of alert view. While tapping a button, an alert view should be displayed with two
different buttons. Also handle events generated by buttons of alert view.

3. Develop an iPhone application to demonstrate use of an action sheet. While tapping a button, the action
sheet should be displayed with three different buttons. Also handle events generated by buttons of the
action sheet.
References
https://developer.apple.com/documentation/uikit

https://developer.apple.com/documentation/swiftui/

https://developer.apple.com/design/human-interface-guidelines/components

https://developer.apple.com/swift/
Thank You
N o v 2 2 , 2 0 2 2

Confidential Information – For intended recipients only. Apexon, Copyright © 2022 Infostretch Corporation. All rights reserved.

You might also like