27. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
27
28. 1. Работа со сборками
и профилями
приложений
#yac2012 #yamobile
28
29. Cпособы установки
приложения
• Добавить в iTunes профиль и сборку,
синхронизировать с девайсом
• Выложить на сервер по FTP/SFTP,
отправить письмо со ссылкой
itms-services://?action=...&url=...
• Веб-сервис для работы с профилями и
сборками
#yac2012 #yamobile
29
30. Мы разработали свой
веб-сервис
Готовые решения не используем:
TestFlight, HockeyApp, ...
#yac2012 #yamobile
30
32. • Простой и удобный сервис для
разработчиков и бета-тестеров
• Загрузка профилей и сборок приложений
• История всех изменений и быстрый
доступ к любой версии приложения
• Свой, бесплатный и быстрый
(в отличии от готовых решений)
#yac2012 #yamobile
32
33. • Автообновление приложений при
выходе новой сборки
• Всего сборок: 949+
• Количество сборок:
2010 — 8, 2011 — 526, 2012 — 415+
#yac2012 #yamobile
33
34. Автосборки проектов
не используем
Привет, Роман Бусыгин! :-)
http://events.yandex.ru/talks/4/
#yac2012 #yamobile
34
35. Почему?
• Один аккаунт разработчика,
100 устройств — вполне достаточно
• Приложение подписывается одним
сертификатом (Dev и Distr), нет такой
проблемы как в Яндексе
• Не используем CI server-а,
1 программист — 1 приложение (реже 2:1)
#yac2012 #yamobile
35
36. Почему?
• Честно, я подходил несколько раз
к программистам и спрашивал, нужно ли
что-нибудь автоматизировать? :-)
• Если мы были бы Яндексом, то тоже
использовали автосборки, но пока нет
#yac2012 #yamobile
36
37. Была идея
использовать
разные профили
для приложений:
Dev и не-Dev
#yac2012 #yamobile
37
38. Есть ограничения:
• Нужны новые Push-сертификаты
• Нужно регистрировать отдельные
«инаппы»
• Синхронизация через iCloud работает
для Dev-a
• ...
#yac2012 #yamobile
38
39. Решили пока
использовать
разные иконки:
Dev и не-Dev
#yac2012 #yamobile
39
40. Зачем?
• При тестирование видно, что это
Dev-версия или нет
• Новые супер-фичи и NDA
• У Dev-сборок может неожиданно истечь
сертификат и приложение не будет
запускаться
#yac2012 #yamobile
40
41. Главное: не забыть
поменять иконку
перед релизом :-)
#yac2012 #yamobile
41
42. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
42
43. 2. Стандартное
серверное API для
всех приложений
#yac2012 #yamobile
43
44. Любое наше
приложение работает
с Applifto API
#yac2012 #yamobile
44
45. Applifto API
• start — базовая информация про устройство
(тип, модель, версия ОС, локаль, ...) и token,
построение различных статистик и отправка
«пушей»
• stderr
#yac2012 #yamobile
45
46. Applifto API
• start
• stderr — отправка всех крешей с
устройства (CrashReportSender),
уведомление разработчика по почте,
веб-интерфейс для просмотра всех крешей
•s
#yac2012 #yamobile
46
47. Applifto API
• start
• stderr
• feedback — в каждом приложение есть
форма связи с нами, оперативное
решение проблем
•ы
#yac2012 #yamobile
47
49. Applifto API
• start
• stderr
• feedback
• about — страница информации или FAQ
по приложению, текст меняется из админа
• verify inapp
#yac2012 #yamobile
49
51. Applifto API
• start
• stderr
• feedback
• about
• verify inapp — защита от взлома «инаппов»,
проверка, рекомендованная Apple
#yac2012 #yamobile
51
52. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
52
64. Иногда совсем
не «рокет»
«На коленке» написанная серверная часть,
безопасность данных вообще отсутствует
#yac2012 #yamobile
64
65. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
65
97. Типы «пушей»
• Открытие приложения
• Написать в обратную связь
• Оставить отзыв в App Store
• Переход на пункт меню или единицу
контента
#yac2012 #yamobile
97
98. Фильтрация при отправке
• Всем
• Только тестовым устройствам
• Выборочно
• учитывая локализацию
• определенной версии ОС и приложения
#yac2012 #yamobile
98
99. Чем чаще отсылаешь
«пуши», тем число
активных устройств
точней
#yac2012 #yamobile
99
100. Не забывать:
про поддержку
«тихого режима»
в приложении
#yac2012 #yamobile
100
102. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
102
132. Хотя, судя по iOS 6,
ошибки в новой
версии — это
«Apple way» :-)
При Стиве Джобсе такого не было!
#yac2012 #yamobile
132
133. Раньше тестировали
приложения все
Программисты, менеджеры, бета-тестеры, ...
#yac2012 #yamobile
133
134. Это отнимало очень
много времени
И совершенно неэффективно!
#yac2012 #yamobile
134
135. Пытались работать
с бета-тестерами
Но они очень ленивые и медленные
#yac2012 #yamobile
135
136. В итоге: решились
на «тестировщика»
Это было сложное и кардинальное решение для нас :-)
#yac2012 #yamobile
136
137. Если в Яндексе
работают
«тестировщикИ»,
#yac2012 #yamobile
137
138. То у нас он один и
универсальный :-)
#yac2012 #yamobile
138
139. • Он совсем не программист!
• Тестирует на всех девайсах и
поддерживаемых версиях ОС
• Разбирает фидбек от пользователей
• Есть список тестов и план тестирования
по каждому приложению
#yac2012 #yamobile
139
142. x.x — мажорный
«апдейт»
Важное обновление, новый функционал,
разработка от 2х недель
#yac2012 #yamobile
142
143. x.x.x — минорный
«апдейт»
Исправление ошибок и улучшения,
разработка 1—5 дней
#yac2012 #yamobile
143
144. x.x.x.x — Dev-версия,
не для публикации
Исправление ошибок и улучшения,
в активной фазе каждые 1—2 дня
#yac2012 #yamobile
144
145. x.x.x.x — Dev-версия,
не для публикации
Обработка таких версий на сервере,
включение дополнительного функционала:
#yac2012 #yamobile
145
146. x.x.x.x — Dev-версия,
не для публикации
проверка «инаппов» через sandbox,
контент для продажи — free, ...
#yac2012 #yamobile
146
147. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
147
148. 6. Безопасность
приложений и борьба
с «пиратами»
#yac2012 #yamobile
148
167. Можно перекинуть в
*.app файлы и они будут
доступны
в приложении
без покупки «инаппа»
Старый баг одного из приложений, сообщил нам
об этом сам «хакер» :-)
#yac2012 #yamobile
167
168. Пара общих
рекомендаций:
#yac2012 #yamobile
168
169. 1. Не забивайте на
шифрование данных,
как WhatsApp
http://clck.ru/2DYSI
#yac2012 #yamobile
169
170. 2. Не публикуйте
базы UDID-ов, если вы
их ещё собираете :-)
http://clck.ru/2DYSs
#yac2012 #yamobile
170
171. После запрета Apple
использовать UDID
мы перешли
на md5 от MAC-адреса
#yac2012 #yamobile
171
172. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
172
173. 7. Релиз и проверка
приложений
#yac2012 #yamobile
173
174. Последний камень
преткновения —
проверка приложения
#yac2012 #yamobile
174
188. Тем раньше узнаёте о
новых ограничениях в
App Store Review :-)
#yac2012 #yamobile
188
189. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
189
190. 8. Мотивация
пользователей или
«белая» магия
#yac2012 #yamobile
190
191. Отлично работает
следующая
комбинация действий:
#yac2012 #yamobile
191
192. • Постоянные Push-уведомления
• Периодичные распродажи
• Пользователи любят покупать наборы
типа «All Inclusive»
• Баннеры-прокачки для контента
как в приложении App Store
#yac2012 #yamobile
192
194. Решение: на сервере
можно управлять
параметром isFree
для единицы контента
#yac2012 #yamobile
194
195. Вторая часть айсберга
1. Работа со сборками и профилями
2. Стандартное серверное API
3. Клиент-серверное взаимодействие
4. Управление приложениями
5. Новые девайсы, версии ОС и приложений
6. Безопасность приложений
7. Релиз и проверка приложений
8. Мотивация пользователей
9. Кратко про Android
195
204. 1. При наличии
успешного опыта
разработки
#yac2012 #yamobile
204
205. Легко и быстро
разрабатываются
вспомогательные
приложения для
внутренних нужд
#yac2012 #yamobile
205
206. • Приложение для логистики,
iPod + сканнер штрих-кодов
• Мониторинг внутренней статистики
• Быстрый доступ к данным по компании
#yac2012 #yamobile
206
208. • Приложение для логистики,
iPod + сканнер штрих-кодов
• Мониторинг внутренней статистики
• Быстрый доступ к данным по компании
#yac2012 #yamobile
208
210. • Приложение для логистики,
iPod + сканнер штрих-кодов
• Мониторинг внутренней статистики
• Быстрый доступ к данным по компании
— приложения «для директора» :-)
#yac2012 #yamobile
210