SlideShare a Scribd company logo
Introduction to  iOS
development
Nikita Korchagin
Developer
Today
•Introduction
•Brief history of iOS and Apple i-devices
•Starting iOS programming
•iOS development
•Desktop vs. Mobile: what’s different
•Human Interface Guidelines
•Further steps: materials to read
iOS History: from past to present
2007 - iPhone OS 1
• Based on Darwin’s (XNU) kernel port
for ARM
• Multitouch screen
• Few standard applications
• iPhone 1st gen and iPod Touch 1st
gen
• Web-based applications only
• No multitasking
• No SDK
• Usage of private APIs by third-party
developers
2008 - iPhone OS 2
•Paid update (all further major and
minor updates are free)
•First version of iPhone SDK
•Xcode IDE for iOS development
•App Store for iPhone and iPod Touch
•iPod Touch 2G released
2009 - iPhone OS 3
•Lots of UI & functionality
improvements (100+)
•Spotlight search
•Push notifications
•In-app purchase
•Core Data
•«Find my iPhone»
functionality
January 2010 - iPhone OS 3.2
•iPad released
•iPhone OS SDK provides abilities
to create universal applications
•iPad applications should support
multiple device orientations
•iPad-only UI components - Split
view controllers, windowed
modal controllers, popover
controllers
•Backward compatibility with
iPhone applications
June 2010 - WWDC - iOS 4
•iPhone OS became iOS
•iPhone 4 with Retina display
•Support of restricted
multitasking
•Background execution of
applications
•Blocks and Grand Central
Dispatch
•Local notifications
•Game Center and Game Kit
June 2011 - WWDC - iOS 5
•Wireless updates & sync
•iCloud
•Notification center
•Siri
•Containment API
•Automatic Reference Counting
(ARC)
•Twitter integration out-of-box
•Newsstand API
•Core Image
June 2012 - WWDC - iOS 6
•Apple Maps
•Collection views
•AutoLayout
•Facebook integration
•Passbook
•New App Store

June 2013 - WWDC - iOS 7
•iOS redesigned (flat UI, no
skeuomorphism)
•iTunes Radio
•Multitasking improvements
•New application switcher
•Filters for camera
•Automatic applications’ updates
June 2014 - WWDC - iOS8
•No significant design changes
•Multiple screen resolutions
•HomeKit and HealthKit, Metal
•Continuity
•Energy consumption by apps
•Swift programming language
June 2015 - WWDC - iOS9
•Multitasking (Slide Over, Split View,
and Picture in Picture.)
•Search API
•GameplayKit, ReplayKit, Model I/O
•App Thinning
•Swift 2
•watchOS 2
How to start to develop for iOS?
Jedi way
•Intel-based Mac (Mac Mini, MacBook Air/Pro, iMac, Mac Pro)
•Installed Mac OS X 10.7 «Lion» or higher
•XCode 6 with latest iOS SDK
•Own i-Device (iPhone/iPod Touch/iPad)
•Apple Developer program account ($99 per 1 year)
•Good knowledge of design patterns
•Objective-C knowledge OR
•Relevant experience in C or any strong-typed object-oriented
language like Java/C#/C++
Alternative ways
•Alternative IDE - AppCode (Mac, still requires Xcode to
be installed)
•Objective-C++ (kernel - C++, UI - Objective-C)
•PhoneGap/Titanium (cross-platform)
•Xamarin (.NET/C# - compiles to native code)
•C++ Marmalade SDK for Visual Studio
•Unity3D/Cocos2D-x for game development
•HTML5/CSS3/JavaScript for web applications
Objective-C
•Objective-C is a general-purpose, object-oriented programming
language that adds Smalltalk-style messaging to the C programming
language.
•It is the main programming language used by Apple until 2014.
•Originally developed in the early 1980s, it was selected as the main
language used by NeXT for its NeXTSTEP operating system.
•Objective-C is a thin layer on top of C, and moreover is a strict
superset of C.
•All of the syntax for non-object-oriented operations (including
primitive variables, pre-processing, expressions, function
declarations, and function calls) are identical to that of C.
•Syntax for object-oriented features is an implementation of
Smalltalk-style messaging.
Swift
•Swift is a multi-paradigm, compiled programming language created
by Apple Inc. for iOS and OS X development.
•It uses the Objective-C runtime, allowing C, Objective-C, C++ and
Swift code to run within a single program.
•Swift was introduced at Apple's 2014 WWDC and Swift 2 at WWDC
2015. Initially a proprietary language, it was announced that Swift 2
would become open source supporting iOS, OS X and Linux.
•Swift supports the core concepts that made Obj-C flexible, notably
dynamic dispatch, widespread late binding, extensible programming
and similar features.
•Swift has added the concept of protocol extensibility, an extensibility
system that can be applied to types, structs and classes, Apple
promotes this as a real change in programming paradigms they refer
to as protocol-oriented programming.
Desktop vs. Mobile
What’s different?
•Multitouch display & gestures
•Front and rear camera
•Speakers and microphone
•Location subsystem - GPS/GLONASS
•Magnetometer and compass
•G-sensor and accelerometer
•Bluetooth accessories
Network
•Variants of connection
•GPRS
•EDGE
•3G/4G
•WiFi
•All these opportunities (except WiFi) are connection-
lost-prone
•Cellular network connection is expensive
Screens
•Fullscreen applications
•Bigger UI elements for fingers
•Dark colors to reduce energy consumption
•Different resolutions (x1, x2 and x3)
•Assets for different resolutions
•Ergonomics
Resources
•Every heavy application dramatically drains battery’s life
•Geolocation - GPS
•Networking
•Disk capacity is limited (8/16/32/64/… GB and no SD/
microSD slot)
•Restricted multitasking (full introduced in iOS 7)
•Only a few types of content are supported
•UI is rendered using real-time thread and shouldn’t be
blocked ever
Security mechanisms
•Sandboxing - every application is isolated and runs under
restricted user’s account («jailed»)
•IPC is limited to URL schemas and extensions
•Personal data and passwords should be encrypted (Keychain) or
not stored on the device at all
•HTTPS connections are preferred; certificate validation is needed
•Data on disk can be encrypted and protected by iOS
•Group policies can be established for iOS devices using
configuration profiles
Creating and submitting the app
•Application should be tested thoroughly; crashes are forbidden
•Application should follow Apple’s Human Interface Guidelines
•Private API usage is forbidden
•Application can be deployed only to the device which is in the
provisioning list
•Application’s binary is signed using developer’s private key
•Application is thoroughly tested during review process
Human Interface Guidelines
HIG
HIG
HIG
HIG
Bad UI/UX
Bad UI/UX
Bad UI/UX
Bad UI/UX
Tablets specific UI
Accessibility
Good UI/UX
Interface Builder HIG support
flat UI vs. skeuomorphism
Further steps
Q&A
Thanks for your attention!

More Related Content

What's hot

iPhone OS: The Next Killer Platform
iPhone OS: The Next Killer PlatformiPhone OS: The Next Killer Platform
iPhone OS: The Next Killer Platform
Christopher Bartling
 
Android Fundamentals, Architecture and Versions
Android Fundamentals, Architecture and VersionsAndroid Fundamentals, Architecture and Versions
Android Fundamentals, Architecture and Versions
indiangarg
 
ios basics
ios basicsios basics
ios basics
Muthu Sabarinathan
 
Beginning Real World iOS App Development
Beginning Real World iOS App DevelopmentBeginning Real World iOS App Development
Beginning Real World iOS App Development
Andri Yadi
 
IOS application development
IOS application developmentIOS application development
IOS application development
Arpit Kulsreshtha
 
iOS Developer Concept introduction
iOS Developer Concept introductioniOS Developer Concept introduction
iOS Developer Concept introduction
Banyapon Poolsawas
 
Session 1 - Introduction to iOS 7 and SDK
Session 1 -  Introduction to iOS 7 and SDKSession 1 -  Introduction to iOS 7 and SDK
Session 1 - Introduction to iOS 7 and SDK
Vu Tran Lam
 
Qa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbrunerQa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbruner
Eran Kinsbrunner
 
Inter-process audio options on iOS
Inter-process audio options on iOSInter-process audio options on iOS
Inter-process audio options on iOS
David Ventura, M.E.T.
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development ppt
Gautam Kumar
 
android vs symbian
android  vs symbianandroid  vs symbian
android vs symbian
AJAL A J
 
EOS
EOSEOS
How & where to start iOS development?
How & where to start iOS development?How & where to start iOS development?
How & where to start iOS development?
Kazi Mohammad Ekram
 
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
SanaChoudary
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
Jim McKeeth
 
Comparison of mobile operating systems
Comparison of mobile operating systemsComparison of mobile operating systems
Comparison of mobile operating systems
Sumit kumar Dhanuk
 
WIPJam Cross Platform Tools - Dec 2013
WIPJam   Cross Platform Tools - Dec 2013WIPJam   Cross Platform Tools - Dec 2013
WIPJam Cross Platform Tools - Dec 2013
Mark Arteaga
 
ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp
 

What's hot (20)

iPhone OS: The Next Killer Platform
iPhone OS: The Next Killer PlatformiPhone OS: The Next Killer Platform
iPhone OS: The Next Killer Platform
 
Android Fundamentals, Architecture and Versions
Android Fundamentals, Architecture and VersionsAndroid Fundamentals, Architecture and Versions
Android Fundamentals, Architecture and Versions
 
ios basics
ios basicsios basics
ios basics
 
Beginning Real World iOS App Development
Beginning Real World iOS App DevelopmentBeginning Real World iOS App Development
Beginning Real World iOS App Development
 
IOS application development
IOS application developmentIOS application development
IOS application development
 
iOS Developer Concept introduction
iOS Developer Concept introductioniOS Developer Concept introduction
iOS Developer Concept introduction
 
Session 1 - Introduction to iOS 7 and SDK
Session 1 -  Introduction to iOS 7 and SDKSession 1 -  Introduction to iOS 7 and SDK
Session 1 - Introduction to iOS 7 and SDK
 
Android
Android Android
Android
 
Qa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbrunerQa extreme 2011 eran kinsbruner
Qa extreme 2011 eran kinsbruner
 
Inter-process audio options on iOS
Inter-process audio options on iOSInter-process audio options on iOS
Inter-process audio options on iOS
 
Android application development ppt
Android application development pptAndroid application development ppt
Android application development ppt
 
android vs symbian
android  vs symbianandroid  vs symbian
android vs symbian
 
EOS
EOSEOS
EOS
 
How & where to start iOS development?
How & where to start iOS development?How & where to start iOS development?
How & where to start iOS development?
 
What is cocoa
What is cocoaWhat is cocoa
What is cocoa
 
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
Road to Success (July 1st) - Mobile Game Development Alternatives - Andrew Bu...
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
Comparison of mobile operating systems
Comparison of mobile operating systemsComparison of mobile operating systems
Comparison of mobile operating systems
 
WIPJam Cross Platform Tools - Dec 2013
WIPJam   Cross Platform Tools - Dec 2013WIPJam   Cross Platform Tools - Dec 2013
WIPJam Cross Platform Tools - Dec 2013
 
ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile apps
 

Viewers also liked

Наталья Шпот «Магия приоритетов как ключ к личному счастью»
Наталья Шпот «Магия приоритетов как ключ к личному счастью»Наталья Шпот «Магия приоритетов как ключ к личному счастью»
Наталья Шпот «Магия приоритетов как ключ к личному счастью»
DataArt
 
Ксения Кобрин "Сферы применения различных типов менеджмента"
Ксения Кобрин "Сферы применения различных типов менеджмента"Ксения Кобрин "Сферы применения различных типов менеджмента"
Ксения Кобрин "Сферы применения различных типов менеджмента"
DataArt
 
Расширение Visual studio для ASP.NET Identity
Расширение Visual studio для ASP.NET IdentityРасширение Visual studio для ASP.NET Identity
Расширение Visual studio для ASP.NET Identity
DataArt
 
Альтернативные способы заваривания кофе
Альтернативные способы заваривания кофеАльтернативные способы заваривания кофе
Альтернативные способы заваривания кофе
DataArt
 
Constitucionalidad internet
Constitucionalidad internetConstitucionalidad internet
Constitucionalidad internet
Joel Quintana
 
Que es el internet programacion web
Que es el internet programacion webQue es el internet programacion web
Que es el internet programacion web
Diego Rojas
 
Анастасия Белокурова (DataArt) "С телефона в облака: Azure Mobile Services. С...
Анастасия Белокурова (DataArt) "С телефона в облака: Azure Mobile Services. С...Анастасия Белокурова (DataArt) "С телефона в облака: Azure Mobile Services. С...
Анастасия Белокурова (DataArt) "С телефона в облака: Azure Mobile Services. С...
DataArt
 
Андрей Вересов - .NET Reflection
Андрей Вересов - .NET ReflectionАндрей Вересов - .NET Reflection
Андрей Вересов - .NET ReflectionDataArt
 
Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»DataArt
 
Cara menginstall windows 7
Cara menginstall windows 7Cara menginstall windows 7
Cara menginstall windows 7julyandre777
 
A New Lump Sum for a New Generation
A New Lump Sum for a New GenerationA New Lump Sum for a New Generation
A New Lump Sum for a New Generation
UrbanBound
 
Стратегия и Кризисы
Стратегия и КризисыСтратегия и Кризисы
Стратегия и Кризисы
DataArt
 
«Документы, которые хочется прочитать: форматы и содержание, увлекающие коман...
«Документы, которые хочется прочитать: форматы и содержание, увлекающие коман...«Документы, которые хочется прочитать: форматы и содержание, увлекающие коман...
«Документы, которые хочется прочитать: форматы и содержание, увлекающие коман...
DataArt
 
" Angular 2.0", Андрей Альперт, DataArt
 " Angular 2.0", Андрей Альперт, DataArt " Angular 2.0", Андрей Альперт, DataArt
" Angular 2.0", Андрей Альперт, DataArt
DataArt
 
Visiting unpleasent places
Visiting unpleasent placesVisiting unpleasent places
Visiting unpleasent places
Arpanasa
 
«Чем занимается Google Life Sciences, и почему биотехнологии ожидает прорыв» ...
«Чем занимается Google Life Sciences, и почему биотехнологии ожидает прорыв» ...«Чем занимается Google Life Sciences, и почему биотехнологии ожидает прорыв» ...
«Чем занимается Google Life Sciences, и почему биотехнологии ожидает прорыв» ...
DataArt
 
IT Talk smartwatches, Dmitriy Scherbina DataArt Dnepropetrovsk
IT Talk smartwatches, Dmitriy Scherbina DataArt Dnepropetrovsk IT Talk smartwatches, Dmitriy Scherbina DataArt Dnepropetrovsk
IT Talk smartwatches, Dmitriy Scherbina DataArt Dnepropetrovsk
DataArt
 
«Как с помощью Google Material Design не делать ». Дмитрий Провоторов
«Как с помощью Google Material Design не делать ». Дмитрий Провоторов«Как с помощью Google Material Design не делать ». Дмитрий Провоторов
«Как с помощью Google Material Design не делать ». Дмитрий Провоторов
DataArt
 
Christmas eve presentatie uit Polen
Christmas eve presentatie uit PolenChristmas eve presentatie uit Polen
Christmas eve presentatie uit Polenevertvangool
 
33-я встреча сообщества IT talk Spb
33-я встреча сообщества IT talk Spb33-я встреча сообщества IT talk Spb
33-я встреча сообщества IT talk Spb
DataArt
 

Viewers also liked (20)

Наталья Шпот «Магия приоритетов как ключ к личному счастью»
Наталья Шпот «Магия приоритетов как ключ к личному счастью»Наталья Шпот «Магия приоритетов как ключ к личному счастью»
Наталья Шпот «Магия приоритетов как ключ к личному счастью»
 
Ксения Кобрин "Сферы применения различных типов менеджмента"
Ксения Кобрин "Сферы применения различных типов менеджмента"Ксения Кобрин "Сферы применения различных типов менеджмента"
Ксения Кобрин "Сферы применения различных типов менеджмента"
 
Расширение Visual studio для ASP.NET Identity
Расширение Visual studio для ASP.NET IdentityРасширение Visual studio для ASP.NET Identity
Расширение Visual studio для ASP.NET Identity
 
Альтернативные способы заваривания кофе
Альтернативные способы заваривания кофеАльтернативные способы заваривания кофе
Альтернативные способы заваривания кофе
 
Constitucionalidad internet
Constitucionalidad internetConstitucionalidad internet
Constitucionalidad internet
 
Que es el internet programacion web
Que es el internet programacion webQue es el internet programacion web
Que es el internet programacion web
 
Анастасия Белокурова (DataArt) "С телефона в облака: Azure Mobile Services. С...
Анастасия Белокурова (DataArt) "С телефона в облака: Azure Mobile Services. С...Анастасия Белокурова (DataArt) "С телефона в облака: Azure Mobile Services. С...
Анастасия Белокурова (DataArt) "С телефона в облака: Azure Mobile Services. С...
 
Андрей Вересов - .NET Reflection
Андрей Вересов - .NET ReflectionАндрей Вересов - .NET Reflection
Андрей Вересов - .NET Reflection
 
Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»Александр Богданов «Lambda - архитектура»
Александр Богданов «Lambda - архитектура»
 
Cara menginstall windows 7
Cara menginstall windows 7Cara menginstall windows 7
Cara menginstall windows 7
 
A New Lump Sum for a New Generation
A New Lump Sum for a New GenerationA New Lump Sum for a New Generation
A New Lump Sum for a New Generation
 
Стратегия и Кризисы
Стратегия и КризисыСтратегия и Кризисы
Стратегия и Кризисы
 
«Документы, которые хочется прочитать: форматы и содержание, увлекающие коман...
«Документы, которые хочется прочитать: форматы и содержание, увлекающие коман...«Документы, которые хочется прочитать: форматы и содержание, увлекающие коман...
«Документы, которые хочется прочитать: форматы и содержание, увлекающие коман...
 
" Angular 2.0", Андрей Альперт, DataArt
 " Angular 2.0", Андрей Альперт, DataArt " Angular 2.0", Андрей Альперт, DataArt
" Angular 2.0", Андрей Альперт, DataArt
 
Visiting unpleasent places
Visiting unpleasent placesVisiting unpleasent places
Visiting unpleasent places
 
«Чем занимается Google Life Sciences, и почему биотехнологии ожидает прорыв» ...
«Чем занимается Google Life Sciences, и почему биотехнологии ожидает прорыв» ...«Чем занимается Google Life Sciences, и почему биотехнологии ожидает прорыв» ...
«Чем занимается Google Life Sciences, и почему биотехнологии ожидает прорыв» ...
 
IT Talk smartwatches, Dmitriy Scherbina DataArt Dnepropetrovsk
IT Talk smartwatches, Dmitriy Scherbina DataArt Dnepropetrovsk IT Talk smartwatches, Dmitriy Scherbina DataArt Dnepropetrovsk
IT Talk smartwatches, Dmitriy Scherbina DataArt Dnepropetrovsk
 
«Как с помощью Google Material Design не делать ». Дмитрий Провоторов
«Как с помощью Google Material Design не делать ». Дмитрий Провоторов«Как с помощью Google Material Design не делать ». Дмитрий Провоторов
«Как с помощью Google Material Design не делать ». Дмитрий Провоторов
 
Christmas eve presentatie uit Polen
Christmas eve presentatie uit PolenChristmas eve presentatie uit Polen
Christmas eve presentatie uit Polen
 
33-я встреча сообщества IT talk Spb
33-я встреча сообщества IT talk Spb33-я встреча сообщества IT talk Spb
33-я встреча сообщества IT talk Spb
 

Similar to Никита Корчагин - Introduction to iOS development

Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
DataArt
 
Apple iOS Technology Market
Apple iOS Technology MarketApple iOS Technology Market
Apple iOS Technology MarketBharat Gera
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for Android
AlexJReid
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptx
Poooi2
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
Changwon National University
 
IT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit VIT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit V
pkaviya
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development Platforms
Barcoding, Inc.
 
Synapse india reviews on android and ios
Synapse india reviews on android and iosSynapse india reviews on android and ios
Synapse india reviews on android and ios
saritasingh19866
 
Android intro
Android introAndroid intro
Android intro
vjy424
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
jaxarcsig
 
Cross-platform development frameworks
Cross-platform development frameworksCross-platform development frameworks
Cross-platform development frameworks
Carlo Bernaschina
 
History of Mobile, Mobile application development and secret to be a great de...
History of Mobile, Mobile application development and secret to be a great de...History of Mobile, Mobile application development and secret to be a great de...
History of Mobile, Mobile application development and secret to be a great de...
Md Razon Hossain
 
6 Months Industrial Training in Big Data in Chandigarh
6 Months Industrial Training in Big Data in Chandigarh6 Months Industrial Training in Big Data in Chandigarh
6 Months Industrial Training in Big Data in Chandigarh
Arcadian Learning
 
Synapseindia android apps intro to android and i os
Synapseindia android apps intro to android and i osSynapseindia android apps intro to android and i os
Synapseindia android apps intro to android and i os
Synapseindiappsdevelopment
 
2011 code camp
2011 code camp2011 code camp
2011 code campimranq2
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
Syed Owais Ali Chishti
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
'Zamin Mammadov
 

Similar to Никита Корчагин - Introduction to iOS development (20)

Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
 
Mobile applications development
Mobile applications developmentMobile applications development
Mobile applications development
 
Apple iOS Technology Market
Apple iOS Technology MarketApple iOS Technology Market
Apple iOS Technology Market
 
Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for Android
 
developementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptxdevelopementofmobileapplication-160412025313 (1).pptx
developementofmobileapplication-160412025313 (1).pptx
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
IT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit VIT6601 Mobile Computing Unit V
IT6601 Mobile Computing Unit V
 
Post Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development PlatformsPost Windows Mobile: New Application Development Platforms
Post Windows Mobile: New Application Development Platforms
 
Synapse india reviews on android and ios
Synapse india reviews on android and iosSynapse india reviews on android and ios
Synapse india reviews on android and ios
 
Android intro
Android introAndroid intro
Android intro
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
 
Cross-platform development frameworks
Cross-platform development frameworksCross-platform development frameworks
Cross-platform development frameworks
 
History of Mobile, Mobile application development and secret to be a great de...
History of Mobile, Mobile application development and secret to be a great de...History of Mobile, Mobile application development and secret to be a great de...
History of Mobile, Mobile application development and secret to be a great de...
 
6 Months Industrial Training in Big Data in Chandigarh
6 Months Industrial Training in Big Data in Chandigarh6 Months Industrial Training in Big Data in Chandigarh
6 Months Industrial Training in Big Data in Chandigarh
 
Synapseindia android apps intro to android and i os
Synapseindia android apps intro to android and i osSynapseindia android apps intro to android and i os
Synapseindia android apps intro to android and i os
 
2011 code camp
2011 code camp2011 code camp
2011 code camp
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
iOS platform
iOS platformiOS platform
iOS platform
 

More from DataArt

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human Approach
DataArt
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life Sciences
DataArt
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital Markets
DataArt
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR Partners
DataArt
 
Event management в IT
Event management в ITEvent management в IT
Event management в IT
DataArt
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from inside
DataArt
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
DataArt
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DataArt
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
DataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
DataArt
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's life
DataArt
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
DataArt
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOps
DataArt
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real life
DataArt
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
DataArt
 
Selenoid
SelenoidSelenoid
Selenoid
DataArt
 
Selenide
SelenideSelenide
Selenide
DataArt
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
DataArt
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
DataArt
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNG
DataArt
 

More from DataArt (20)

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human Approach
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life Sciences
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital Markets
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR Partners
 
Event management в IT
Event management в ITEvent management в IT
Event management в IT
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from inside
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проект
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's life
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOps
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real life
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
 
Selenoid
SelenoidSelenoid
Selenoid
 
Selenide
SelenideSelenide
Selenide
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNG
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 

Никита Корчагин - Introduction to iOS development

  • 1. Introduction to  iOS development Nikita Korchagin
  • 3.
  • 4. Today •Introduction •Brief history of iOS and Apple i-devices •Starting iOS programming •iOS development •Desktop vs. Mobile: what’s different •Human Interface Guidelines •Further steps: materials to read
  • 5. iOS History: from past to present
  • 6. 2007 - iPhone OS 1 • Based on Darwin’s (XNU) kernel port for ARM • Multitouch screen • Few standard applications • iPhone 1st gen and iPod Touch 1st gen • Web-based applications only • No multitasking • No SDK • Usage of private APIs by third-party developers
  • 7. 2008 - iPhone OS 2 •Paid update (all further major and minor updates are free) •First version of iPhone SDK •Xcode IDE for iOS development •App Store for iPhone and iPod Touch •iPod Touch 2G released
  • 8. 2009 - iPhone OS 3 •Lots of UI & functionality improvements (100+) •Spotlight search •Push notifications •In-app purchase •Core Data •«Find my iPhone» functionality
  • 9. January 2010 - iPhone OS 3.2 •iPad released •iPhone OS SDK provides abilities to create universal applications •iPad applications should support multiple device orientations •iPad-only UI components - Split view controllers, windowed modal controllers, popover controllers •Backward compatibility with iPhone applications
  • 10. June 2010 - WWDC - iOS 4 •iPhone OS became iOS •iPhone 4 with Retina display •Support of restricted multitasking •Background execution of applications •Blocks and Grand Central Dispatch •Local notifications •Game Center and Game Kit
  • 11. June 2011 - WWDC - iOS 5 •Wireless updates & sync •iCloud •Notification center •Siri •Containment API •Automatic Reference Counting (ARC) •Twitter integration out-of-box •Newsstand API •Core Image
  • 12. June 2012 - WWDC - iOS 6 •Apple Maps •Collection views •AutoLayout •Facebook integration •Passbook •New App Store

  • 13. June 2013 - WWDC - iOS 7 •iOS redesigned (flat UI, no skeuomorphism) •iTunes Radio •Multitasking improvements •New application switcher •Filters for camera •Automatic applications’ updates
  • 14. June 2014 - WWDC - iOS8 •No significant design changes •Multiple screen resolutions •HomeKit and HealthKit, Metal •Continuity •Energy consumption by apps •Swift programming language
  • 15. June 2015 - WWDC - iOS9 •Multitasking (Slide Over, Split View, and Picture in Picture.) •Search API •GameplayKit, ReplayKit, Model I/O •App Thinning •Swift 2 •watchOS 2
  • 16. How to start to develop for iOS?
  • 17. Jedi way •Intel-based Mac (Mac Mini, MacBook Air/Pro, iMac, Mac Pro) •Installed Mac OS X 10.7 «Lion» or higher •XCode 6 with latest iOS SDK •Own i-Device (iPhone/iPod Touch/iPad) •Apple Developer program account ($99 per 1 year) •Good knowledge of design patterns •Objective-C knowledge OR •Relevant experience in C or any strong-typed object-oriented language like Java/C#/C++
  • 18. Alternative ways •Alternative IDE - AppCode (Mac, still requires Xcode to be installed) •Objective-C++ (kernel - C++, UI - Objective-C) •PhoneGap/Titanium (cross-platform) •Xamarin (.NET/C# - compiles to native code) •C++ Marmalade SDK for Visual Studio •Unity3D/Cocos2D-x for game development •HTML5/CSS3/JavaScript for web applications
  • 20. •Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. •It is the main programming language used by Apple until 2014. •Originally developed in the early 1980s, it was selected as the main language used by NeXT for its NeXTSTEP operating system. •Objective-C is a thin layer on top of C, and moreover is a strict superset of C. •All of the syntax for non-object-oriented operations (including primitive variables, pre-processing, expressions, function declarations, and function calls) are identical to that of C. •Syntax for object-oriented features is an implementation of Smalltalk-style messaging.
  • 21. Swift
  • 22. •Swift is a multi-paradigm, compiled programming language created by Apple Inc. for iOS and OS X development. •It uses the Objective-C runtime, allowing C, Objective-C, C++ and Swift code to run within a single program. •Swift was introduced at Apple's 2014 WWDC and Swift 2 at WWDC 2015. Initially a proprietary language, it was announced that Swift 2 would become open source supporting iOS, OS X and Linux. •Swift supports the core concepts that made Obj-C flexible, notably dynamic dispatch, widespread late binding, extensible programming and similar features. •Swift has added the concept of protocol extensibility, an extensibility system that can be applied to types, structs and classes, Apple promotes this as a real change in programming paradigms they refer to as protocol-oriented programming.
  • 24. What’s different? •Multitouch display & gestures •Front and rear camera •Speakers and microphone •Location subsystem - GPS/GLONASS •Magnetometer and compass •G-sensor and accelerometer •Bluetooth accessories
  • 25. Network •Variants of connection •GPRS •EDGE •3G/4G •WiFi •All these opportunities (except WiFi) are connection- lost-prone •Cellular network connection is expensive
  • 26. Screens •Fullscreen applications •Bigger UI elements for fingers •Dark colors to reduce energy consumption •Different resolutions (x1, x2 and x3) •Assets for different resolutions •Ergonomics
  • 27. Resources •Every heavy application dramatically drains battery’s life •Geolocation - GPS •Networking •Disk capacity is limited (8/16/32/64/… GB and no SD/ microSD slot) •Restricted multitasking (full introduced in iOS 7) •Only a few types of content are supported •UI is rendered using real-time thread and shouldn’t be blocked ever
  • 28. Security mechanisms •Sandboxing - every application is isolated and runs under restricted user’s account («jailed») •IPC is limited to URL schemas and extensions •Personal data and passwords should be encrypted (Keychain) or not stored on the device at all •HTTPS connections are preferred; certificate validation is needed •Data on disk can be encrypted and protected by iOS •Group policies can be established for iOS devices using configuration profiles
  • 29. Creating and submitting the app •Application should be tested thoroughly; crashes are forbidden •Application should follow Apple’s Human Interface Guidelines •Private API usage is forbidden •Application can be deployed only to the device which is in the provisioning list •Application’s binary is signed using developer’s private key •Application is thoroughly tested during review process
  • 31. HIG
  • 32. HIG
  • 33. HIG
  • 34. HIG
  • 43. flat UI vs. skeuomorphism
  • 45. Q&A
  • 46. Thanks for your attention!