SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Работа с данными
Разработка приложений для iOS
Лекция 8
Глеб Тарасов
gleb34@gmail.com
Вспомним прошлое
занятие
Что нужно сделать, чтобы
загрузить данные в фоновом
потоке, а потом обновить
интерфейс?
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// background
dispatch_async(dispatch_get_main_queue(), ^{
// main
});
});
Как проще всего подключать
сторонние библиотеки к нашему
проекту?
через CocoaPods
Как называется самая популярная
библиотека для отправки GET и
POST запросов?
AFNetworking
Какой самый простой способ
загрузить текстовый файл по ссылке?
NSURL *url = [NSURL URLWithString:@"http://server.com/file.txt"];
NSString *str = [[NSString alloc] initWithContentsOfURL:url
encoding:NSUTF8StringEncoding
error:nil];
Работа с файлами
https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html
<Application_Home>/AppName.app
readonly!
Бандл приложения
<Application_Home>/Documents/
read/write!
Критичные данные, которые мы не можем!
перегенерировать программно, чаще всего те,!
которые создал сам пользователь
<Application_Home>/tmp/
read/write!
Временные файлы, которые очищаются !
после перезапуска программы
<Application_Home>/Library/
read/write!
Важные файлы, которые нужны программе, !
но создал не пользователь.
<Application_Home>/Library/Application Support
read/write!
лучше хранить все тут, а не в Library
<Application_Home>/Library/Caches
read/write!
храним тут данные, которые можно потом
перегенерировать или перезагрузить
com.apple.MobileBackup
Атрибут файла, который предотвращает backup файла в
iCloud и iTunes
https://developer.apple.com/library/ios/qa/qa1719/_index.html
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success;
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *path = paths[0];
NSLog(@"%@", path);
Получения пути к папке
NSDocumentDirectory
NSCachesDirectory
NSLibraryDirectory
NSApplicationSupportDirectory
NSString *path = NSTemporaryDirectory();
NSLog(@"%@", path);
Путь к папке tmp
NSString *path = NSTemporaryDirectory();
NSString *folderPath = [path stringByAppendingPathComponent:@"folder"];
NSString *filePath = [folderPath stringByAppendingPathComponent:@"file.txt"];
!
NSString *folderPath2 = [filePath stringByDeletingLastPathComponent];
NSString *path2 = [folderPath2 stringByDeletingLastPathComponent];
Работа с путями
NSURL *url = [NSURL fileURLWithPath:path];
NSLog(@"%@", url.path);
NSFileManager
NSFileManager *m = [NSFileManager defaultManager];
[m removeItemAtPath:path error:nil];
[m removeItemAtURL:url error:nil];
[m copyItemAtPath:pathFrom toPath:pathTo error:nil];
[m copyItemAtURL:urlFrom toURL:urlTo error:nil];
[m moveItemAtPath:pathFrom toPath:pathTo error:nil];
[m moveItemAtURL:urlFrom toURL:urlTo error:nil];
[m createDirectoryAtPath:path
withIntermediateDirectories:YES
attributes:nil
error:nil];
Сохранение в файл
NSString *path = ...
NSString *filePath = [path stringByAppendingPathComponent:@"file.txt"];
!
NSString *str = @"test";
[str writeToFile:filePath
atomically:YES
encoding:NSUTF8StringEncoding
error:nil];
NSData *data = ...
[data writeToFile:path atomically:YES];
Чтение из файла
NSString *str = [[NSString alloc] initWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:nil];
!
!
!
!
NSData *data = [[NSData alloc] initWithContentsOfFile:path];
NSUserDefaults
NSUserDefaults *d = [NSUserDefaults standardUserDefaults];
!
[d setObject:@"qwerty" forKey:@"key"];
[d setInteger:123 forKey:@"key2"];
[d setObject:@[ @"123", @(12), @"321" ] forKey:@"key3"];
[d synchronize];
!
NSUserDefaults *d = [NSUserDefaults standardUserDefaults];
NSString *str = [d objectForKey:@"key"];
NSInteger num = [d integerForKey:@"key2"];
NSArray *arr = [d objectForKey:@"key3"];
NSCoding
@interface User : NSObject<NSCoding>
!
@property (strong, nonatomic) NSString *firstName;
@property (strong, nonatomic) NSString *lastName;
@property (nonatomic) NSInteger age;
!
@end
@implementation User
!
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.firstName forKey:@"firstName"];
[aCoder encodeObject:self.lastName forKey:@"lastName"];
[aCoder encodeInteger:self.age forKey:@"age"];
}
!
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self)
{
self.firstName = [aDecoder decodeObjectForKey:@"firstName"];
self.lastName = [aDecoder decodeObjectForKey:@"lastName"];
self.age = [aDecoder decodeIntegerForKey:@"age"];
}
return self;
}
!
@end
NSUserDefaults *d = [NSUserDefaults standardUserDefaults];
!
User *u = ...
NSData *data1 = [NSKeyedArchiver archivedDataWithRootObject:u];
NSArray *arr = @[ user1, user2, user3 ];
NSData *data2 = [NSKeyedArchiver archivedDataWithRootObject:arr];
[d setObject:data1 forKey:@"data1"];
[d setObject:data2 forKey:@"data2"];
Сохранение
произвольных объектов
NSUserDefaults *d = [NSUserDefaults standardUserDefaults];
!
NSData *data1 = [d objectForKey:@"data1"];
User *u = [NSKeyedUnarchiver unarchiveObjectWithData:data1];
NSData *data2 = [d objectForKey:@"data2"];
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithData:data2];
Считывание
произвольных объектов
sqlite
Core Data
- (NSManagedObjectModel *)createManagedObjectModel
{
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Test" withExtension:@"momd"];
NSManagedObjectModel *m = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return m;
}
NSManagedObjectModel
(аналог схемы базы данных)
- (NSPersistentStoreCoordinator *)loadPersistentStoreCoordinator
{
NSString *docs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES)[0];
NSString *filePath = [docs stringByAppendingPathComponent:@"db.sqlite"];
NSURL *storeURL = [NSURL fileURLWithPath:filePath];
!
NSDictionary *options = @{ NSMigratePersistentStoresAutomaticallyOption : @YES };
NSPersistentStoreCoordinator *p = [[NSPersistentStoreCoordinator alloc]
initWithManagedObjectModel:[self managedObjectModel]];
if (![p addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:storeURL
options:options
error:nil])
{
NSLog(@"error");
}
return p;
}
NSPersistentStoreCoordinator
(информация о типе БД и месте хранения данных)
- (NSManagedObjectContext *)loadManagedObjectContext
{
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
NSManagedObjectContext *c = [[NSManagedObjectContext alloc] init];
[c setPersistentStoreCoordinator:coordinator];
return c;
}
NSManagedObjectContext
(аналог соединения с базой данных)
Вставка объектов
NSManagedObjectContext *m = [self managedObjectContext];
NSManagedObject *city = [NSEntityDescription insertNewObjectForEntityForName:@"City"
inManagedObjectContext:m];
[city setValue:@"Москва" forKey:@"name"];
[m save:nil];
Загрузка объектов
NSFetchRequest *request = [[NSFetchRequest alloc]
initWithEntityName:@"User"];
!
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name"
ascending:YES];
!
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age > 12"];
!
request.predicate = predicate;
request.sortDescriptors = @[ sort ];
!
NSArray *users = [[self managedObjectContext] executeFetchRequest:request
error:nil];
for (NSManagedObject *user in users)
{
NSLog(@"%@", [user valueForKey:@"name"]);
}
NSPredicate
Базовые cравнения
• =, == (age == 13)
• >=, => (age >= 13)
• <=, =< (age <= 13)
• > (age > 13)
• < (age < 13)
• !=, <> (age != 13)
• BETWEEN (age BETWEEN { 0 , 33 })
http://nshipster.com/nspredicate/
Базовые булевы операции
• AND, && (age > 13 && age < 27)
• OR, || (age > 13 || name != nil)
• NOT, ! (!(age > 13))
Строковые сравнения
[cd] - case insensitive и diacritic insensitive
•BEGINSWITH (name BEGINSWITH[c] 'алекс')
•CONTAINS (name CONTAINS[cd] 'алекс')
•ENDSWITH (name ENDSWITH 'андр')
•LIKE: (name LIKE 'Але*нд?')
•MATCHES (name MATCHES 'Александр+')
Функции агрегирования
•ANY, SOME (ANY children.age < 18)
•ALL (ALL children.age < 18)
•NONE (NONE children.age < 18)
•IN: (name IN { 'Ben', 'Melissa', 'Nick' })
Удаление объектов
for (NSManagedObject *user in users)
{
[[user managedObjectContext] deleteObject:user];
}
Многопоточность 	

в Core Data
• каждый контекст привязан к одному
потоку	

• каждая сущность привязана к одному
контексту	

• удобная многопоточная работа:
библиотека MagicalRecord
Демонстрация
• создание модели данных	

• создание собственных классов для
сущностей	

• миграция версий
Домашнее задание
• добавить работу с файлами и базой
данных
Всё!
Глеб Тарасов	

gleb34@gmail.com	

twitter.com/pilot34

Mais conteúdo relacionado

Mais procurados

Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Ontico
 
Игорь Любин - PowerShell - ConfeT&QA 2011
Игорь Любин - PowerShell - ConfeT&QA 2011Игорь Любин - PowerShell - ConfeT&QA 2011
Игорь Любин - PowerShell - ConfeT&QA 2011
ilyubin
 
Web осень 2013 лекция 3
Web осень 2013 лекция 3Web осень 2013 лекция 3
Web осень 2013 лекция 3
Technopark
 
Web осень 2013 лекция 5
Web осень 2013 лекция 5Web осень 2013 лекция 5
Web осень 2013 лекция 5
Technopark
 
DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6
Dmitry Soshnikov
 
Web осень 2013 лекция 9
Web осень 2013 лекция 9Web осень 2013 лекция 9
Web осень 2013 лекция 9
Technopark
 
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNGвебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
Andrey Rebrov
 
Yii development
Yii developmentYii development
Yii development
MageCloud
 

Mais procurados (20)

msumobi2. Лекция 2
msumobi2. Лекция 2msumobi2. Лекция 2
msumobi2. Лекция 2
 
Интеграция Яндекс Сервер
Интеграция Яндекс СерверИнтеграция Яндекс Сервер
Интеграция Яндекс Сервер
 
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
Денормализованное хранение данных в PostgreSQL 9.2 (Александр Коротков)
 
Python dict: прошлое, настоящее, будущее
Python dict: прошлое, настоящее, будущееPython dict: прошлое, настоящее, будущее
Python dict: прошлое, настоящее, будущее
 
Игорь Любин - PowerShell - ConfeT&QA 2011
Игорь Любин - PowerShell - ConfeT&QA 2011Игорь Любин - PowerShell - ConfeT&QA 2011
Игорь Любин - PowerShell - ConfeT&QA 2011
 
12 - Web-технологии. Django модели
12 - Web-технологии. Django модели12 - Web-технологии. Django модели
12 - Web-технологии. Django модели
 
13 - Web-технологии. Отображение данных
13 - Web-технологии. Отображение данных13 - Web-технологии. Отображение данных
13 - Web-технологии. Отображение данных
 
Active Record for CoreData
Active Record for CoreDataActive Record for CoreData
Active Record for CoreData
 
Web осень 2013 лекция 3
Web осень 2013 лекция 3Web осень 2013 лекция 3
Web осень 2013 лекция 3
 
Web осень 2013 лекция 5
Web осень 2013 лекция 5Web осень 2013 лекция 5
Web осень 2013 лекция 5
 
Avito / SPA Meetup 2
Avito / SPA Meetup 2Avito / SPA Meetup 2
Avito / SPA Meetup 2
 
Эффективное программирование на NodeJS
Эффективное программирование на NodeJSЭффективное программирование на NodeJS
Эффективное программирование на NodeJS
 
Работа с БД в Drupal 7
Работа с БД в Drupal 7Работа с БД в Drupal 7
Работа с БД в Drupal 7
 
Cтрах и ненависть в MongoDB
Cтрах и ненависть в MongoDBCтрах и ненависть в MongoDB
Cтрах и ненависть в MongoDB
 
file handling in c++
file handling in c++file handling in c++
file handling in c++
 
DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6
 
RDSDataSource: Promises
RDSDataSource: PromisesRDSDataSource: Promises
RDSDataSource: Promises
 
Web осень 2013 лекция 9
Web осень 2013 лекция 9Web осень 2013 лекция 9
Web осень 2013 лекция 9
 
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNGвебинар - функциональное тестирование с использованием Selenium 2 и TestNG
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
 
Yii development
Yii developmentYii development
Yii development
 

Semelhante a Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными

Курсы по мобильной разработке под iOS. 5 лекция. Работа с данными
Курсы по мобильной разработке под iOS. 5 лекция. Работа с даннымиКурсы по мобильной разработке под iOS. 5 лекция. Работа с данными
Курсы по мобильной разработке под iOS. 5 лекция. Работа с данными
Глеб Тарасов
 
7 кашкута
7 кашкута7 кашкута
7 кашкута
CodeFest
 
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOSКурсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Глеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейсИнтуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Глеб Тарасов
 
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
Школа-студия разработки приложений для iOS. Лекция 1. Objective-CШкола-студия разработки приложений для iOS. Лекция 1. Objective-C
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
Глеб Тарасов
 
2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ
Oleg Parinov
 
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 2. Objective-CИнтуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
Глеб Тарасов
 
Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.
MageCloud
 

Semelhante a Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными (20)

Курсы по мобильной разработке под iOS. 5 лекция. Работа с данными
Курсы по мобильной разработке под iOS. 5 лекция. Работа с даннымиКурсы по мобильной разработке под iOS. 5 лекция. Работа с данными
Курсы по мобильной разработке под iOS. 5 лекция. Работа с данными
 
7 кашкута
7 кашкута7 кашкута
7 кашкута
 
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOSКурсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
 
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейсИнтуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
Интуит. Разработка приложений для iOS. Лекция 9. Нестандартный интерфейс
 
Влад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseВлад Ковташ — Yap Database
Влад Ковташ — Yap Database
 
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
Школа-студия разработки приложений для iOS. Лекция 1. Objective-CШкола-студия разработки приложений для iOS. Лекция 1. Objective-C
Школа-студия разработки приложений для iOS. Лекция 1. Objective-C
 
msumobi2. Лекция 1
msumobi2. Лекция 1msumobi2. Лекция 1
msumobi2. Лекция 1
 
2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ
 
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 2. Objective-CИнтуит. Разработка приложений для iOS. Лекция 2. Objective-C
Интуит. Разработка приложений для iOS. Лекция 2. Objective-C
 
Functional Reactive Programming
Functional Reactive ProgrammingFunctional Reactive Programming
Functional Reactive Programming
 
Дмитрий Костюк - Очаровательные серые кнопки: обзор эволюции виджет-тулкитовH...
Дмитрий Костюк - Очаровательные серые кнопки: обзор эволюции виджет-тулкитовH...Дмитрий Костюк - Очаровательные серые кнопки: обзор эволюции виджет-тулкитовH...
Дмитрий Костюк - Очаровательные серые кнопки: обзор эволюции виджет-тулкитовH...
 
Squeek school #6
Squeek school #6Squeek school #6
Squeek school #6
 
Js fuckworks
Js fuckworksJs fuckworks
Js fuckworks
 
Разработка крупного Standalone проекта на юнити: улучшаем производительность
Разработка крупного Standalone проекта на юнити: улучшаем производительностьРазработка крупного Standalone проекта на юнити: улучшаем производительность
Разработка крупного Standalone проекта на юнити: улучшаем производительность
 
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
 
Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.Модульное тестирование iOS-приложений.
Модульное тестирование iOS-приложений.
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
AlgoCollections (RUS)
AlgoCollections (RUS)AlgoCollections (RUS)
AlgoCollections (RUS)
 
RxJava + Retrofit
RxJava + RetrofitRxJava + Retrofit
RxJava + Retrofit
 
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
 

Mais de Глеб Тарасов

Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Глеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Глеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPadИнтуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Глеб Тарасов
 
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетьюИнтуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Глеб Тарасов
 
Интуит. Разработка приложений для 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. Лекция 1. Знакомство.
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
Интуит. Разработка приложений для iOS. Лекция 1. Знакомство.
Глеб Тарасов
 
Презентация проекта Ulect
Презентация проекта Ulect Презентация проекта Ulect
Презентация проекта Ulect
Глеб Тарасов
 
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. РазноеШкола-Студия разработки приложений для iOS. 5 лекция. Разное
Школа-Студия разработки приложений для iOS. 5 лекция. Разное
Глеб Тарасов
 
Школа-Студия разработки приложений для 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. 6 лекция. Инструменты
Курсы по мобильной разработке под iOS. 6 лекция. ИнструментыКурсы по мобильной разработке под iOS. 6 лекция. Инструменты
Курсы по мобильной разработке под iOS. 6 лекция. Инструменты
Глеб Тарасов
 
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефонаКурсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Глеб Тарасов
 
Курсы по мобильной разработке. 3 лекция. Сложные интерфейсы.
Курсы по мобильной разработке. 3 лекция. Сложные интерфейсы.Курсы по мобильной разработке. 3 лекция. Сложные интерфейсы.
Курсы по мобильной разработке. 3 лекция. Сложные интерфейсы.
Глеб Тарасов
 

Mais de Глеб Тарасов (20)

Gleb Tarasov. Portfolio
Gleb Tarasov. PortfolioGleb Tarasov. Portfolio
Gleb Tarasov. Portfolio
 
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
Интуит. Разработка приложений для iOS. Лекция 12. Тестирование, публикация и др.
 
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
Интуит. Разработка приложений для iOS. Лекция 11. Расширенные возможности уст...
 
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPadИнтуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
Интуит. Разработка приложений для iOS. Лекция 10. Поддержка iPad
 
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетьюИнтуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
Интуит. Разработка приложений для iOS. Лекция 7. Работа с сетью
 
Интуит. Разработка приложений для 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. Лекция 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. 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
 
ShareKit. Evernote Dev Meetup
ShareKit. Evernote Dev MeetupShareKit. Evernote Dev Meetup
ShareKit. Evernote Dev Meetup
 
Глеб Тарасов. Портфолио
Глеб Тарасов. ПортфолиоГлеб Тарасов. Портфолио
Глеб Тарасов. Портфолио
 
Курсы по мобильной разработке под iOS. 6 лекция. Инструменты
Курсы по мобильной разработке под iOS. 6 лекция. ИнструментыКурсы по мобильной разработке под iOS. 6 лекция. Инструменты
Курсы по мобильной разработке под iOS. 6 лекция. Инструменты
 
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефонаКурсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
Курсы по мобильной разработке под iOS. 4 лекция. Возможности телефона
 
Курсы по мобильной разработке. 3 лекция. Сложные интерфейсы.
Курсы по мобильной разработке. 3 лекция. Сложные интерфейсы.Курсы по мобильной разработке. 3 лекция. Сложные интерфейсы.
Курсы по мобильной разработке. 3 лекция. Сложные интерфейсы.
 

Интуит. Разработка приложений для iOS. Лекция 8. Работа с данными