Заметки по программированию iOS

***

Не все шаблоны приложений в Xcode доступны для iPhone и iPad. Например, шаблон Navigation-based Application не поддерживается iPad, а шаблон Split View-based Application не поддерживается iPhone.

***

iPhone Simulator расположен в:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app

***

Gestures:
  • Tap
  • Touch and Hold
  • Double-tap
  • Swipe
  • Flick
  • Drag
  • Pinch

***

Ограничения iPhone Simulator:
  • Телефонные звонки
  • Доступ к акселерометру
  • Отправка и получение SMS
  • Установка приложений из App Store
  • Камера
  • Микрофон
  • Несколько возможностей OpenGL ES



***

Пользовательская область файловой системы iPhone OS в iPhone Simulator расположена в:
~/Library/Application Support/iPhone Simulator
Эта папка также известна как  <iPhoneUserDomain>
Third-party приложения хранятся в: 
<iPhoneUserDomain>/<version_no>/Applications/

***

views посредством drag and drop располагаются на windows и затем различные views соединяются с помощью outlets и actions

***

Приложение Instruments позволяет динамически трассировать и профилировать Mac OS X, iPhone, и iPad приложения. 
Возможности:
  • Stress тест приложения
  • Мониторинг приложения на memory leaks


***

Архитектура iPhone OS:


Core OS:
  • OS X Kernel
  • Mach 3.0
  • BSD
  • Sockets
  • Security
  • Power Management 
  • Keychain 
  • Certificates
  • File System 
  • Bonjour

Core Services:
  • Collections 
  • Address Book 
  • Networking 
  • File Access 
  • SQLite
  • Core Location 
  • Net Services 
  • Threading 
  • Preferences 
  • URL Utilities

Media:
  • Core Audio 
  • OpenGL
  • Audio Mixing 
  • Audio Recording 
  • Video Playback 
  • JPG, PNG, TIFF 
  • PDF
  • Quartz
  • Core Animation 
  • OpenGL ES

Cocoa Touch:
  • Multi-Touch events 
  • Multi-Touch controls 
  • Accelerometer
  • View Hierarchy 
  • Localization
  • Alerts
  • Web Views 
  • People Picker 
  • Image Picker 
  • Controllers

***


***

Есть шесть различных редакций iPad. 
Три с Wi-Fi. Другие три с Wi-Fi и 3G. 
iPad выпускается в трех storage конфигурациях: 16GB, 32GB, 64GB.

***

Apple требует чтобы все приложения были подписаны валидным сертификатом. Для тестирования приложения требуется сертификат разработчика. Нужно зарегистрироваться в iPhone Developer Program, запросить и установить сертификат разработчика на свое устройство.

***

iPhone 4
Диагональ: 3.5 inches
Пиксельное разрешение:  960 x 640 (326 ppi)
Фактическое разрешение: 920 x 640 (из-за статусной строки, но ее можно выключить)
Точка соответсвует двум пикселям

iPhone 3G/3GS и iPod
Разрешение:  480 x 320 пикселей
Точка соответсвует пикселю т.е. напрямую транслируется в пиксель


iPad
Пиксельное разрешение:  1024 x 768 (132 ppi)


***

Начиная с iOS 4 все приложения построенные с использованием iPhone 4.0 SDK поддерживают мультизадачность.
"Hence, when you press the Home button on your iPhone, your application is not terminated; it is sent to the background and sus- pended. Tapping an application icon resumes the application."

***

Иконка приложения должна быть 57х57 пикселей (для iPhone), 114x114 (для  iPhone с высоким разрешением), или 72х72 пикселя (для iPad). Возможен больший размер т.к. iOS автоматически изменяет размер. Для дистрибуции через App Store нужно также изображение 512х512 пикселей.
Иконка должна быть прямоугольными углами. iPhone автоматически их сгладит. Также будет добавлена глянцевая поверхность (можно отключить).

https://developer.apple.com/library/ios/#qa/qa2010/qa1686.html

To turn off the glossy effect applied on your icon, you need to add the UIPrerenderedIcon key to the HelloWorld-Info.plist file in your Xcode project and then set it to YES. For more details on the various keys that you can set in your HelloWorld-Info.plist file, refer to Apple’s documentation at:
https://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

***

https://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html

***

Splash Screen
Default.png в apllication bundle (папка Resources)
480x320 пикселей (960x640 для  iPhone с высоким разрешением)

"Keep in mind the dimension of the image; it will not be displayed during loading if you have an image of the wrong size."

***

The nonatomic keyword indicates that there is no need to ensure that the property is used in a thread-safe manner because it is not used in multiple threads. The default behavior is atomic, and specifying nonatomic actually improves the performance of your application.

***

In the implementation file (.m), you use the @synthesize keyword to indicate to the compiler to create the getter and setter for the specified property

***

The sender parameter allows you to programmatically find out who actually invokes this action. This is useful when you have multiple views connecting to one single action. For such cases, you often need to know which is the view that invokes this method and the sender parameter will contain a reference to the calling view.

***


The Library is divided into sections:
Controllers — Contains views that control other views, such as the View Controller, Tab Bar Controller, Navigation Controller, and so on.
Data Views — Contains views that display data, such as the Image View, Table View, Data Picker, Picker View, and so on.
Inputs and Values — Contains views that accept input from users as well as display values, such as the Label, Round Rect Button, Text Field, and so on.
Windows, Views & Bars — Contains views that display other, miscellaneous views, such as View, Search Bar, Toolbar, and so on.

***