Разработка для iOS
В январе 2014 я решил, что разработка дополнений для MODX Revolution это, конечно, круто, но нужно попробовать и что-то другое. Мобильные устройства меня интересовали всегда, поэтому решил поучиться на разработчика для iOS.
Почему именно iOS, а не Android? Да просто потому, что яблочные устройства давно заменили все остальные устройства у меня дома - уж больно хороши. AppStore я считаю образцовым магазином, а приложения в нём меня постоянно восхищают.
В общем, купил пару книг, оплатил доступ в программу разработчиков ($100 в год) и... забросил это дело на 9 месяцев, во время которых сделал хостинг, пару сайтов, сгонял в отпуск и обновил почти все свои дополнения для MODX 2.3. И вот только совсем недавно я смог найти 2 спокойных недели и вдумчиво почитать книжки.
Результатом стало моё первое простенькое приложение для сайта Критиканство.
Критиканство, в первую очередь, сводная база оценок по фильмам и играм, так что приложение просто выводит информацию из БД сайта. Там нет ничего такого, чего бы вы не нашли на http://www.kritikanstvo.ru, но оно может быть полезно для быстрого просмотра оценок фильма перед походом в кинотеатр.
В первую очередь я старался изучить полезные для себя технологии. Дизайна, понятно, нет - его просто некому рисовать, поэтому всё оформлено стандартными элементами UIKit.
Итак, что умеет это приложение?
Главное окно показывает новинки кинематографа и игровой индустрии. В данный момент выводятся позиции, которые были выпущены не больше чем 1 - 3 мес. назад и имеют не менее 10 рецензий. Выводятся они случайно, чтобы я мог освоить обновление таблицы сдвигом вниз: Возможно, в будущем, вывод перестанет быть случайным.
У каждой позиции выводится оригинальное название, локализованное, год выхода и средняя оценка критиков. Сразу видно, что стоит смотреть\играть, а что лучше обойти стороной.
Как видите, приложение комфортно чувствует себя при повороте.
Самое интересное в карточке позиции - это рецензии критиков. Они выводятся в сокращенном виде примерно таким же списком, как и на сайте Критиканства, но вы можете прочитать и полную версию - при касании открывается web view с сайтом критика: -
Ну а при нажатии на синее название позиции, вы отправитесь на само Критиканство за дополнительной информацией. -
Внешний вид открываемого сайта зависит от него самого. Под область вывода отдан весь экран, за исключением строки навигации вверху. Никаких кнопок управления нет.
Второй таб карточки позиции содержит в себе изображения галереи. Они показываются на полный экран, скрывается даже status bar, чтобы вас ничего не отвлекало от разглядывания постеров. -
Здесь тоже нет никаких элементов управления, показ и скрытие происходит при одиночном касании, переключение картинки жестами вправо-влево.
Ну и последнее окно - это Поиск. Здесь та же самая таблица, что и на главном окне, и при выборе позиции вы также отправляетесь на ту же карточку фильма\игры. -
Поиск на стороне сервера пока очень простой - через LIKE по названиям. Нет никакой морфологии и подстановки похожих результатов. Возможно, со временем доработаем.
Разработка
Не претендую вообще ни на что и совсем не уверен, что приложение одобрят в AppStore, но так как работа проделана - нужно отчитаться.
Как уже говорил, от начала обучения и до релиза первой версии прошло всего 2 недели, всё сделано очень простенько, но, я надеюсь, со вкусом. Если приложение будут пользоваться спросом, то обещаю его регулярно дорабатывать и обновлять.
В работе использовал Xcode и AppCode. В первом рисовал интерфейс, а во втором, собственно, писал код. Оба инструмента отлично работают одновременно с одним проектом, так что выходит очень удобно.
Под конец работы выяснилось, что из Xcode6-beta6 нельзя ничего отправлять в магазин, так что пришлось вернуться в Xcode5 - разница приличная. Выяснилось, что в Xcode6 я наворитил всякого в интерфейсе с layout margin, из-за чего он вообще не открывался в предыдущей версии. Пришлось переделывать. Затем выяснилось, что галерея, прекрасно чувствовавшая себя в iOS8, нифига не работает в iOS7 - пришлось переделывать и её.
В общем, в последние два дня весь интерфейс бы переделан заново. Не пользуйтесь бета версиями IDE и iOS при разработке!
В работе использовал только Objective-C. Чтобы начать использовать Swift нужно сначала понять, чем он лучше\хуже Objective-C, поэтому я начал с азов (немного пришлось почитать и про сам C). К тому же, говорят, что Swift пока еще сыроват и активно дорабатывается.
Заключение
В целом, впечатления крайне положительные. Честно говоря, разрабатывать для iOS мне показалось проще, чем писать веб-приложения.
Здесь нет зоопарка браузеров, нет html, нет css, нет javascript и нет необходимости их все увязывать друг с другом. Код не выгружается на сервер, ты не зависишь от сетевого соединения.
Весь внешний вид рисуется в Interface Builder - и это невероятно просто и удобно (когда разберешься). Для тестирования есть эмулятор (все скриншоты в заметке сняты с его помощью), можно проверять работу в разных версиях, даже не имея реальных устройств. Ну а если у вас есть iPhone или iPad, можно зарегистрировать их в программе разработчиков и проверять работу там.
В общем, Apple очень постаралась, чтобы разработчика ничего не отвлекало - как обычно. Ну а теперь скрестим пальцы на две недели и будем ждать, пройдёт ли моя проба пера модерацию в магазине.
Обновлено 25.09.2014
Всем спасибо, отлично скрестили пальцы - приложение прошло модерацию и доступно в AppStore!
Скорее всего, это могло бы случиться и раньше, но я там исправил пару недостатков и залил новую версию 20го сентября. Так что, если считать от этой даты, то приложение стояло в очереди всего 5 дней.
Ну а если с момента загрузки первой сборки, то все 18 дней.
0
👍
👎
❤️
🔥
😮
😢
😀
😡
1 804
07.09.2014 12:03:40