SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Downloaden Sie, um offline zu lesen
Тестирование,
публикация и многое
другое
Разработка приложений для iOS
Лекция 12
Глеб Тарасов
gleb34@gmail.com
Вспомним прошлое
занятие
Какие датчики позволяют
отслеживать положение телефона
в пространстве?
Какие датчики позволяют
отслеживать положение телефона
в пространстве?
Гироскоп, акселерометр, компас, GPS
С помощью какого контроллера
проще всего проиграть видео на
iOS?
С помощью какого контроллера
проще всего проиграть видео на
iOS?
MPMoviePlayerViewController
Какие классы помогают распознавать
жесты?
Какие классы помогают распознавать
жесты?
UIGestureRecognizer и наследники
Лицензия
разработчика
https://developer.apple.com
developer.apple.com
• бета-версии iOS	

• добавление устройств	

• генерация сертификатов	

• добавление id приложений
Сертификаты
• developer для отладки на устройстве	

• distribution adhoc для тестировщиков	

• distribution appstore для публикации	

• push для уведомлений с сервера
iTunes Connect
https://itunesconnect.apple.com
itunesconnect.apple.com
• добавление приложений	

• добавление свойств приложений: иконка,
описание и т.п.	

• публикация приложений	

• добавление банковского счета	

• данные по продажам, финансовые
показатели и т.п.
Отладка на устройстве
Публикация для
тестировщиков и
заказчиков
https://www.testflightapp.com
TestFlight
• создаем команду	

• приглашаем по email тестировщиков или
заказчиков	

• они принимают приглашение и
добавляют устройство	

• вам приходит идентификатор	

• добавляете его на developer.apple.com	

• выкладываете приложение
Публикация в
AppStore
Полезные сервисы
Crashlytics
отслеживание крешей в Ad Hoc и App Store
версиях
https://www.crashlytics.com
App Annie
отслеживание скачиваний и продаж,	

мест в топах
https://www.appannie.com
AppBot
отслеживание отзывов
http://appbot.co
Flurry
аналитика внутри приложения	

отслеживание эффективности рекламы
http://www.flurry.com
[Flurry startSession:@"2YT83KWNNPGVKJJ4FC"];
NSDictionary *params = @{ @"title" : level.title,
@"index" : @(level.index) };
!
[Flurry logEvent:@"start_level" withParameters:params];
pod 'FlurrySDK'
Монетизация
• платное приложение	

• in-app purchase	

• реклама
in-app purchases
• consumable	

• non-consumable
• добавить в itunes connect	

• написать код	

• при публикации не забыть отправить на
проверку
pod 'MKStoreKit'
MKStoreKitConfigs.plist:
if ([MKStoreManager isFeaturePurchased:@"mobi.krugozor.history.hard"])
{
...
}
[MKStoreManager.sharedManager
buyFeature:@"mobi.krugozor.history.hard"
onComplete:^(NSString *purchasedFeature,
NSData *purchasedReceipt,
NSArray *availableDownloads) {
// купили
}
onCancelled:^{
// не купили
}];
не забыть сделать кнопку
«restore purchases»!!
[MKStoreManager.sharedManager restorePreviousTransactionsOnComplete:^{
// успешно
} onError:^(NSError *error) {
// ошибка
}];
Продвижение
• обзоры	

• реклама в моб. приложениях соц. сетей	

• реклама в пабликах	

• баннеры в других приложениях
Измерение
эффективности
• добавляем в приложение Flurry	

• Генерим уникальную ссылку во Flurry	

• Рекламируем через эту ссылку	

• Меряем эффективность именно этой
рекламы
Локализация
• папки ru.lproj, en.lproj…	

• Localizable.strings	

• локализация Storyboard
NSString *str = NSLocalizedString(@"Hello, world!", nil);
/*
Localizable.strings
*/
!
"Hello, world!" = "Привет, мир!";
/* Main.strings */
"M56-y0-JDf.text" = "Привет мир!";
"LEK-6m-uDB.text" = "Спасибо!";
Картинки
• Иконки	

• Defaults	

• Ретина
Работа с соц.сетями
• отправка сообщений	

• авторизация через OAuth
http://getsharekit.com
ShareKit
Шаринг
#import "DefaultSHKConfigurator.h"
!
@interface KrugozorSHKConfigurator : DefaultSHKConfigurator
!
@end
!
@implementation KrugozorSHKConfigurator
!
- (NSString*)appName
{
return @"Кругозор: История";
}
!
- (NSString*)appURL
{
return APP_URL;
}
!
- (NSString*)vkontakteAppId
{
return @"413781232";
}
!
- (NSString*)facebookAppId
{
return @"123323432342432";
}
!
- (NSArray*)facebookWritePermissions
{
return [NSArray arrayWithObjects:@"publish_actions", @"publish_stream", nil];
}
!
- (NSArray *)facebookReadPermissions
{
return [NSArray arrayWithObjects:@"publish_actions", @"publish_stream", nil];
}
!
- (NSString *)twitterSecret
{
return @"asdsadasdadasdas";
}
!
- (NSString *)twitterConsumerKey
{
return @"asdasdasdasdassdsada";
}
!
- (NSString *)twitterCallbackUrl
{
return @"http://krugozor.mobi";
}
!
- (NSArray*)defaultFavoriteURLSharers
{
return @[@«SHKTwitter", @«SHKFacebook", @"SHKVkontakte"];
}
!
- (NSArray*)defaultFavoriteTextSharers
{
return @[@"SHKMail",@"SHKTextMessage"];
}
!
!
- (NSNumber *)isUsingCocoaPods
{
return @YES;
}
!
- (NSNumber *)showActionSheetMoreButton
{
return @NO;
}
!
@end
NSString *text = [NSString stringWithFormat:@"Советую попробовать	
образовательное приложение
«Кругозор: История» для
iPhone и iPad: %@",
APP_URL];
SHKItem *item = [SHKItem text:text];
item.title = @"Кругозор";
!
SHKActionSheet *a = [SHKActionSheet actionSheetForItem:item];
[a showFromRect:self.button.frame
inView:self.button.superview
animated:YES];
Получение токена
pod 'ShareKit/Facebook'!
pod 'ShareKit/Twitter'!
pod 'ShareKit/Vkontakte'
@interface SHKVkontakte : SHKSharer
@interface SHKFacebook : SHKSharer
@interface SHKTwitter : SHKOAuthSharer
- (BOOL)authorize;
+ (BOOL)isServiceAuthorized;
self.vkontakte = [[SHKVkontakte alloc] init];
self.twitter = [[SHKTwitter alloc] init];
self.facebook = [[SHKFacebook alloc] init];
!
!
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(shareKitAuthenticationFinished:)
name:SHKAuthDidFinishNotification
object:self.vkontakte];
!
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(shareKitAuthenticationFinished:)
name:SHKAuthDidFinishNotification
object:self.twitter];
!
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(shareKitAuthenticationFinished:)
name:SHKAuthDidFinishNotification
object:self.facebook];
- (NSString *)currentToken
{
if ([[SHKFacebook class] isServiceAuthorized])
return FBSession.activeSession.accessTokenData.accessToken;
else if ([[SHKVkontakte class] isServiceAuthorized])
return [NSUserDefaults.standardUserDefaults
objectForKey:kSHKVkontakteAccessTokenKey];
else if ([[SHKTwitter class] isServiceAuthorized])
return self.twitter.accessToken.key;
else
return nil;
}
UIActivityViewController
UIActivityViewController *activity = [[UIActivityViewController alloc]
initWithActivityItems:@[image, @"text"]
applicationActivities:nil];
!
!
activity.excludedActivityTypes = @[ UIActivityTypePrint,
UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,
UIActivityTypeSaveToCameraRoll,
UIActivityTypeAirDrop ];
!
!
[activity setCompletionHandler:^(NSString *activityType, BOOL completed) {
if (completed) {
// отправили
}
}];
!
[self presentViewController:activity animated:YES completion:nil];
@interface InstagramActivity : UIActivity
!
@end
iCloud
NSUbiquitousKeyValueStore
UIDocument
Core Data
http://www.objc.io/issue-10/icloud-core-data
http://www.raywenderlich.com/12779/icloud-and-uidocument-beyond-the-basics-part-1
NSURL *ubiq = [NSFileManager.defaultManager
URLForUbiquityContainerIdentifier:nil];
if (!ubiq)
{
// iCloud не доступен
}
else
{
[NSUbiquitousKeyValueStore.defaultStore setString:@"value"
forKey:@"key"];
!
[NSUbiquitousKeyValueStore.defaultStore synchronize];
}
NSString *v = [NSUbiquitousKeyValueStore.defaultStore
stringForKey:@"key"];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(icloudChanged)
name:NSUbiquitousKeyValueStoreDidChangeExternallyNotification
object:nil];
- (void)icloudChanged
{
// icloud обновился
}
Рассказать про заказ
• http://tvme.ru
Всё!
Глеб Тарасов	

gleb34@gmail.com	

twitter.com/pilot34

Weitere ähnliche Inhalte

Ähnlich wie Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.

Continuous integration testing of mobile SDK
Continuous integration testing of mobile SDKContinuous integration testing of mobile SDK
Continuous integration testing of mobile SDKTestableapple
 
Как делать глобальный проект
Как делать глобальный проектКак делать глобальный проект
Как делать глобальный проектisdeforum
 
Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Alconost
 
#MBLTdev: Знакомство с codesign (e-Legion)
#MBLTdev: Знакомство с codesign (e-Legion)#MBLTdev: Знакомство с codesign (e-Legion)
#MBLTdev: Знакомство с codesign (e-Legion)e-Legion
 
Cerebro for vfx rus
Cerebro for vfx rusCerebro for vfx rus
Cerebro for vfx rusCineSoft
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)Ontico
 
Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all SoftServe
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложенийAlexander Khozya
 
Go под капотом
Go под капотомGo под капотом
Go под капотомIdris Djumanov
 
10 вещей, которые «невозможно» сделать в iOS
10 вещей, которые «невозможно» сделать в iOS10 вещей, которые «невозможно» сделать в iOS
10 вещей, которые «невозможно» сделать в iOSAny Void
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?buranLcme
 
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBStepan Stolyarov
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.Alexander Titov
 
Cerebro general overiew rus
Cerebro general overiew rusCerebro general overiew rus
Cerebro general overiew rusCineSoft
 
Drupal и мобильные устройства
Drupal и мобильные устройстваDrupal и мобильные устройства
Drupal и мобильные устройстваKonstantin Komelin
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинPVasili
 

Ähnlich wie Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др. (20)

Continuous integration testing of mobile SDK
Continuous integration testing of mobile SDKContinuous integration testing of mobile SDK
Continuous integration testing of mobile SDK
 
Как делать глобальный проект
Как делать глобальный проектКак делать глобальный проект
Как делать глобальный проект
 
Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?
 
#MBLTdev: Знакомство с codesign (e-Legion)
#MBLTdev: Знакомство с codesign (e-Legion)#MBLTdev: Знакомство с codesign (e-Legion)
#MBLTdev: Знакомство с codesign (e-Legion)
 
Cerebro for vfx rus
Cerebro for vfx rusCerebro for vfx rus
Cerebro for vfx rus
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
 
Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all Go Mobile! Windows Phone 7 for all
Go Mobile! Windows Phone 7 for all
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложений
 
Go под капотом
Go под капотомGo под капотом
Go под капотом
 
10 вещей, которые «невозможно» сделать в iOS
10 вещей, которые «невозможно» сделать в iOS10 вещей, которые «невозможно» сделать в iOS
10 вещей, которые «невозможно» сделать в iOS
 
Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?Построение собственного JS SDK — зачем и как?
Построение собственного JS SDK — зачем и как?
 
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDBCodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
 
Серверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDBСерверный JavaScript: NodeJS и CouchDB
Серверный JavaScript: NodeJS и CouchDB
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.DevOps в Agile среде. Как, почему и когда инструменты помогают.
DevOps в Agile среде. Как, почему и когда инструменты помогают.
 
Cerebro general overiew rus
Cerebro general overiew rusCerebro general overiew rus
Cerebro general overiew rus
 
Drupal и мобильные устройства
Drupal и мобильные устройстваDrupal и мобильные устройства
Drupal и мобильные устройства
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
 

Mehr von Глеб Тарасов

Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...Глеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPadИнтуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPadГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейсИнтуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейсГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 8. Работа с даннымиИнтуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 8. Работа с даннымиГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 4. ControllersИнтуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 4. ControllersГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsИнтуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 2. Objective-CИнтуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 2. Objective-CГлеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.Глеб Тарасов
 
Презентация проекта Ulect
Презентация проекта Ulect Презентация проекта Ulect
Презентация проекта Ulect Глеб Тарасов
 
Презентация для Foundation Institute
Презентация для Foundation InstituteПрезентация для Foundation Institute
Презентация для Foundation InstituteГлеб Тарасов
 
Делаем жизнь лучше с CocoaPods
Делаем жизнь лучше с CocoaPodsДелаем жизнь лучше с CocoaPods
Делаем жизнь лучше с CocoaPodsГлеб Тарасов
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеГлеб Тарасов
 
Школа-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиШкола-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиГлеб Тарасов
 
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеШкола-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеГлеб Тарасов
 
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersШкола-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersГлеб Тарасов
 
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
Школа-студия разработки приложений для iOS. Лекция 1. Objective-CШкола-студия разработки приложений для iOS. Лекция 1. Objective-C
Школа-студия разработки приложений для iOS. Лекция 1. Objective-CГлеб Тарасов
 

Mehr von Глеб Тарасов (20)

Gleb Tarasov. Portfolio
Gleb Tarasov. PortfolioGleb Tarasov. Portfolio
Gleb Tarasov. Portfolio
 
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
 
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPadИнтуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
 
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейсИнтуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
 
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 8. Работа с даннымиИнтуит. Разработка приложений для iOS. Лекция 8. Работа с данными
Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
 
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 4. ControllersИнтуит. Разработка приложений для iOS. Лекция 4. Controllers
Интуит. Разработка приложений для iOS. Лекция 4. Controllers
 
Интуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. ViewsИнтуит. Разработка приложений для iOS. Лекция 3. Views
Интуит. Разработка приложений для iOS. Лекция 3. Views
 
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 2. Objective-CИнтуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
 
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
 
Презентация проекта Ulect
Презентация проекта Ulect Презентация проекта Ulect
Презентация проекта Ulect
 
Презентация для Foundation Institute
Презентация для Foundation InstituteПрезентация для Foundation Institute
Презентация для Foundation Institute
 
Делаем жизнь лучше с CocoaPods
Делаем жизнь лучше с CocoaPodsДелаем жизнь лучше с CocoaPods
Делаем жизнь лучше с CocoaPods
 
msumobi2. Лекция 2
msumobi2. Лекция 2msumobi2. Лекция 2
msumobi2. Лекция 2
 
msumobi2. Лекция 1
msumobi2. Лекция 1msumobi2. Лекция 1
msumobi2. Лекция 1
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
 
Школа-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиШкола-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с данными
 
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжениеШкола-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
Школа-Студия разработки приложений для iOS. 3 лекция. Интерфейсы, прололжение
 
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, ControllersШкола-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
Школа-студия разработки приложений для iOS. 2 лекция. MVC, View, Controllers
 
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
Школа-студия разработки приложений для iOS. Лекция 1. Objective-CШкола-студия разработки приложений для iOS. Лекция 1. Objective-C
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
 

Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.