Your SlideShare is downloading. ×
Курсы по мобильной разработке под iOS. 5 лекция. Работа с данными
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Курсы по мобильной разработке под iOS. 5 лекция. Работа с данными

1,702

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,702
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
40
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Разработка под iOS Лекция 5Работа с данными Глеб Тарасов
  • 2. Варианты хранения данных?
  • 3. Яндекс.Карты
  • 4. Аудиокнига
  • 5. Аудиокнига свозможностью покупки
  • 6. Новости
  • 7. Новости с возможностьюоффлайн чтения
  • 8. Лекции и тесты
  • 9. 10 000 магазинов сразу после установки программы
  • 10. • Файлы (загружаются из сети или поставляются вместе с приложением)• Данные загружаются из сети в память и нигде не сохраняются• Данные загружаются из сети, кешируются на какое-то время• Данные загружаются из сети, сохраняются в базу данных• База данных поставляется вместе с приложением
  • 11. Работа с файлами
  • 12. NSFileManager - удалять, копировать файлы и т.д.- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error;- (BOOL)fileExistsAtPath:(NSString *)path; NSData - бинарные данные- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile; NSString - текстовые данные+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;
  • 13. Папки Файл поставляется вместе с приложениемNSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"txt"]; Корневая папка bundleNSString *path = [[NSBundle mainBundle] bundlePath];
  • 14. Папки Папка Documents (для долгого хранения)NSString *path = [NSSearchPathForDirectoriesInDomains( NSDocumentsDirectory, NSUserDomainMask, YES) lastObject]; Папка Caches (для хранения кеша)NSString *path = [NSSearchPathForDirectoriesInDomains( NSCachesDirectory, NSUserDomainMask, YES) lastObject];
  • 15. Работа с сетью
  • 16. http://site.ru/app/request.php?cmd=get_news Запрос Ответ
  • 17. GEThttp://site.ru/request.php?param1=test&param2=123 POSThttp://site.ru/request.php Тело запроса: <request query="load-courses"> <courses query="create"> <course id="100"/> <course id="312"/> </courses > < /request >
  • 18. XML http://ru.wikipedia.org/wiki/XML<?xml version="1.0" encoding="UTF-8"?><recipe name="хлеб" preptime="5" cooktime="180"> <title>Простой хлеб</title> <ingredient amount="3" unit="стакан">Мука</ingredient> <ingredient amount="0.25" unit="грамм">Дрожжи</ingredient> <ingredient amount="1.5" unit="стакан">Тёплая вода</ingredient> <ingredient amount="1" unit="чайная ложка">Соль</ingredient> <instructions> <step>Смешать все ингредиенты и тщательно замесить.</step> <step>Закрыть тканью и оставить на один час в тёплом помещении.</step> <!-- <step>Почитать вчерашнюю газету.</step> - это сомнительныйшаг... --> <step>Замесить ещё раз, положить на противень и поставить вдуховку.</step> </instructions></recipe>
  • 19. JSONhttp://ru.wikipedia.org/wiki/ JSON{ "firstName": "Иван", "lastName": "Иванов", "address": { "streetAddress": "Московское ш.,101, кв.101", "city": "Ленинград", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ]}
  • 20. REST http://ru.wikipedia.org/wiki/REST• Сервер не держит сессию с клиентом, не хранит состояние.• Каждый запрос от клиента содержит всю нужную информацию для ответа.• Запросы кешируемы•…
  • 21. Get-запросNSURL *url = [NSURL URLWithString:@"http://site.ru/request.php?param=1"];NSString *result = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
  • 22. POST-запросNSURL *url = [NSURL URLWithString:@"http://site.ru/request.php"];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];request.HTTPMethod = @"POST";NSString *request = @"текст запроса";request.HTTPBody = [request dataUsingEncoding:NSUTF8StringEncoding];NSData *resultData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];NSString *resultString = [[NSString alloc] initWithData:resultData encoding:NSUTF8StringEncoding];
  • 23. Серверная часть• Xостинг + скрипты на Python, PHP, Ruby.• Облако + скрипты (Google App Engine, Amazon EC, Microsoft Azure и т.д.)• Облачная NoSQL база без скриптов (Amazon SimpleDB, MongoDB и т.д.)• Сторонние сервисы
  • 24. Parse http://parse.com
  • 25. Внутренняя база данных
  • 26. SQLiteВстраиваемая база данных с поддержкой SQL-синтаксиса. • Работа напрямую через API на Си • Использование сторонних ORM на Objective-C • CoreData (ORM от Apple)
  • 27. CoreData(демонстрация)

×