techmas — TECHMAS – Блог о мобильной разработке и интернет продвижении http://techmas.ru/blog TECHMAS – Актуальная и полезная информация о разработке мобильных приложений для различных устройств на iOS и Android. Статьи, технологии, решения, советы. Thu, 01 Jun 2017 10:40:52 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.4.14 База знаний Android-разработчика http://techmas.ru/blog/baza-znaniy-android-razrabotchika/ http://techmas.ru/blog/baza-znaniy-android-razrabotchika/#respond Wed, 31 May 2017 13:49:31 +0000 http://techmas.ru/blog/?p=216

Автор статьи: Алексей Быков, Android-разработчик компании Techmas.

Если Вы начинающий специалист в области Android-разработки, обладаете определенными знаниями и планируете в скором времени устраиваться на работу, то этот материал для вас. К данной статье вы будете возвращаться по мере накопления опыта, смотреть на каком этапе в данный момент находитесь и что необходимо изучать дальше.

 

Начало пути

Мне довелось поработать в сфере системного администрирования более двух лет, после чего я понял, что мне необходимо сделать акцент на профессиональном развитии и идти дальше. Мой интерес к технологиям рос и я остановился на программировании, а именно, на языке Java. Я начал изучение Java SE с нуля. По плану было полное погружение в Java SE , а после в Java EE. После запуска обычного проекта на Android «Hello World» в середине изучения Java SE, мои взгляды на будущее сильно поменялись. Весь путь от первого «погружения» в программу до предложения о работе занял 1 год.

На чем остановить свой выбор?

К выбору Android нужно подойти с полной осознанностью, поскольку эта область развивается стремительно — с каждым годом выходит новая версия, определенный процент уже существующих приложений на новой версии без доработок может даже не запуститься. Вам необходимо быть готовым решать такие задачи.

Языки программирования для Android

1. Официально Google предоставил два варианта:

  • Android SDK. Официальные языки — Java и Kotlin.
    Большинство существующих проектов написаны на Java.
    Kotlin является внуком Java. Некоторые разработчики стали активно использовать его в своих проектах. Но их не так много, по сравнению с Java.
    Android официально стал поддерживать Kotlin с мая 2017 года, возможности языка будут встроены в Android Studio 3.0.
  • Android NDK. Официальные языки C/C++.
    Сам Google рекомендует использовать NDK в тех случаях, когда требуется максимальная производительность. Для примера: в одном из наших проектов мы использовали NDK для организации голосовой связи.

2. Кросс-платформенные инструменты. Их использование является менее популярным, чем нативная разработка.

Начало изучения Android

Не стоит спешить с выбором, касающегося кросс-платформенных инструментов или Kotlin.

C помощью кросс-платформенных инструментов можно разрабатывать сразу и под Android и iOS. Они способны решать определённый спектр задач, но по гибкости никогда не сравнятся с нативными решениями. Более того, такие специалисты не сильно востребованы на рынке труда.

Что касается Kotlin, на сегодняшний день нет компаний, у которых абсолютно все Android-проекты написаны на нём. Я думаю, Kotlin стоит изучать только после трудоустройства.

Рекомендую начинать обучение с Java, особенно в том случае, если у вас нет опыта в программировании.

Изучение Java

  • Типы данных. (Примитивные и ссылочные)
  • Циклы(for/while/for each)
  • Устройство памяти в Java(Stack, Heap). Так же важно понимать, как и на каком уровне работает Garbarage collector
  • Методы — возвращаемые/не возвращаемые
  • Массивы и коллекции, а так же операции с ними (Сортировки)
  • ООП (Полиморфизм, Наследование, Инкапсуляция, Абстракция)
  • Comparator и Comparable (для сортировки объектов)
  • Threads и Runnable, для понимания, как устроена многопоточность в Java.
  • Exceptions (try/catch/finnaly) — для «отлова» ошибок
  • Generics (Обобщенные типы)

Собеседования я проходил именно с этим списком.
На мой взгляд, этого более чем достаточно.

В сети есть множество хороших ресурсов для изучения Java и Android. Я затрону только те, по которым занимался сам.

1. JavaRush

Самым первым ресурсом для обучения стал JavaRush. Мне кажется, достаточно будет пройти бесплатный курс «Java Syntax», который состоит из 10 уровней.

Сам по себе ресурс явно заслуживает внимания, несмотря на некорректность многих задач и сильно заметную недоработку валидатора. Многие скептично относятся к этому сервису, и считают, что не стоит на него тратить время. Я же, как и многие из коих коллег отмечаю в нем и достоинства, и недостатки, но не стану отрицать тот факт, что JavaRush даст неплохой старт и неплохо прокачает алгоритмы. Рекомендую ресурс для тех, кто только начал изучение, однако долго заострять внимание не нам не стоит.

2. Java Core от Ивана Головоча

Параллельно с JavaRush также смотрел видео-лекции Ивана Головоча, которые на мой взгляд являются самыми лучшими по Java в рунете. Мало кто в наше время способен делать хорошо одновременно две вещи: программировать, и объяснять, как программировать. Именно эти лекции помогут закрепить полученные знания на JavaRush. Лекции по Javа Сore советую смотреть полностью.

Изучаем Android

  • XML — верстать интерфейсы придется именно на нем
  • Activity/Fragments — «формы» для расположения UI. Необходимо знать их отличия, жизненные циклы, манипуляции с данными (onActivityresult)
  • Intents — передача данных между Activity, открытие сторонних приложений
  • Bundle — передача данных между Fragments, сохранение состояния экрана
  • Базовые адаптеры для ViewPager, RecyclerView, Spinner
  • NavigationView — Навигационное меню «Шторка»
  • Dialog, DialogFragment— Диалоговые окна (например, с текстом и кнопками «Да», «Нет»)
  • AsyncTask — Многопоточность в Android
  • SharedPreferenses — Для сохранения настроек и небольших данных
  • Service — Выполнение длительных операций в фоновом режиме
  • SQLite — База данных. Теряет свою популярность, так же почти во всех новых проектах используют ORM. Но в старых проектах точно будете встречать
  • Работа с ресурсами: string, color, styles, dimens, animations
  • Manifest файл, permissions — Описание компонентов приложения и разрешения

Собеседования я проходил без знаний Dialog/DialogFragment и Service

1. Udacity:Android Basics

1
После окончания вводного курса по Android, желание программировать сильно увеличилось. В курсе максимально понятно объясняется базовая концепция разработки под Android. После этого курса я написал свое первое приложение — генератор паролей, с сохранением состояния экрана при переворотах.

2. Видео-лекции StartAndroid
Неплохим дополнением к Udacity стали бесплатные видео-лекции от ресурса StartAndroid.

Не рекомендую смотреть старые уроки (2012-2013 год), так как сейчас эта информация уже не актуальна, а технологии ушли далеко вперед. С начала 2015 года информация включает в себя все нововведения и технологии за последние несколько лет. Кроме этого уроки есть в текстовом формате.

3. Блог Александра Климова

Актуален в настоящий момент. Некоторые материалы до сих пор просматриваю в данном блоге. Каждая тема осваивается на практическом примере с подробным объяснением.

4. Devcolibri — Full Android Application
После прохождения курса от Udacity, появилась идея начать писать свое первое тестовое приложение. После недолгих поисков, нашёл хороший курс от Devcolibri, где объяснялась концепция разработки на примере написания простейшего таск-менеджера. Смотря этот курс, я параллельно начал делать свое приложение, подхватывая различные полезные советы из урока.

Технологии и инструменты для Android Junior

В сообществе Android-разработчиков в Telegram, появился вопрос на эту тему. Мой ответ оценили как слишком завышенный по требованиям к Junior. (Я описал Retrofit2 в связке с RxJava, так же Dagger2, EventBus, Realm и Picasso). Стоит отметить, что уровень требований к Android Junior почти во всех студиях разный. Кого-то берут на работу и с начальными знаниями Android, без технологий в принципе. Но это редкость, и я не был в числе этих счастливчиков. Чем больше вы знаете — тем выше ваши шансы на трудоустройство.

Обо всем по порядку:

1. Git

git
Это система контроля версий кода. Позволяет активно работать в команде, отслеживать изменения в коде и откатываться на предыдущие версии, что очень удобно. Советую пройти хороший курс от GeekBrains. В качестве Git-клиента, рекомендую использовать SourceTree, т.к. он полностью бесплатен и удобен, а студии очень любят экономить на ПО.

2. ButterKnife
Удобная библиотека для объявления view-элементов из XML. (И не только). Изучается очень быстро и сокращает определённое количество рутинного кода.

3. Retrofit2, RxJava, RxAndroid, OkHttp Loging InterCeptor
Retrofit2REST-клиент
RxJava модуль реактивного программирования на Java
RxAndroid модуль реактивного программирования на Android
OkHttp Loging InterCeptor модуль для логирования HTTP-запросов (часть библиотеки OkHttp)
Достаточно знать основы работы в этой связке. (Например, уметь распарсить JSON с данными)

Не стоит с самого начала копать RxJava глубоко. Значительная часть Android-разработчиков использует её исключительно в связке с Retrofit2.

1. Изучаем Retrofit 2
2. Retrofit2: Загружаем файлы на сервер
3. Retrofit2 + RxJava + RxAndroidRetrofit2 + RxJava + RxAndroid
4. Dagger2
Библиотека для внедрения зависимостей. Достаточно так же знать основы, а именно — как внедрять самые простые зависимости.

1. Dagger 2 и структура приложения для Android
2. Основы Dagger2
3. Dagger 2. Лечим зависимости по методике Google

Чат в Telegram: @dagger_2

5. Realm

realm
База данных. По некоторым параметрам она быстрее чем SQLite. Правда, в продакшн-проектах используется до сих пор не так часто, т.к. stable-версия вышла относительно недавно. Но, на мой взгляд, будущее локального хранения данных на Android именно за Realm. Достаточно посмотреть её на абстрактном уровне — разобрать базовые транзакции.

Сравнительная характеристика ORM и баз данных

6. Picasso
Библиотека для работы с изображениями. Чаще всего, используется для загрузки изображений с сети. Максимально проста в использовании.

7. EventBus
Библиотека для отправки сообщений. Не стоит применять её часто, т.к. код с EventBus очень трудно поддерживать в дальнейшем.

Практика

Как правило, у кандидатов с уже имеющимися приложениями на GitHub шансы на трудоустройство выше. (Особенно, если в них применены все технологии, которые я описал).

Для повышения шансов на трудоустройство, я рекомендую написать тестовое приложение, которое закрепит полученные знания. Каким оно должно быть, и что должно делать — решать вам. Лично мне кажется, что неоспоримым преимуществом перед другими кандидатами будет приложение, которое загружает какие-то данные из сети и отображает в удобном формате для пользователя.

При этом, если у пользователя нет интернета — последние актуальные данные загружаются из базы данных. Если вы не нашли подходящую для себя API — не беда, сформируйте несколько JSON-файлов на данном ресурсе и используйте их. Смотреть будут не на полезность вашего приложения для мира, а на то, как вы его реализовали.

Мое приложение загружало из сети список менеджеров компании и показывало график выполнения плана продаж. Уже в процессе его разработки я получил предложение о работе.

Моя самая главная ошибка в процессе разработки этого приложения — я пытался всё сделать идеально. По стандартам, чтобы мой код хорошо оценили. Обладая очень абстрактными знаниями по MVP, я попытался встроить его в проект, тем самым, ещё сильнее запутав свой код.

Сделать своё первое приложение идеально не получится, как бы вы не пытались. Мне кажется, что не стоит в своем первом проекте использовать MVP, если не хотите ещё больше запутать самого себя. (В дальнейшем, уже после трудоустройства — однозначно стоит).

Во время разработки, у вас может возникнуть много вопросов. Не беда, если у вас нет знакомых Android-разработчиков. Смело задавайте свои вопросы на StackOverFlow (можно на русском языке). Также, вопросы можно задавать в каналах Telegram.

  • Start Android Ru Chat
    @startandroidchat
  • Start Android Ru Channel
    @startandroid
  • Android Developers — русскоговорящее сообщество
    @android_ru
  • Mobile Dev Jobs — вакансии и аналитика
    @mobile_jobs
  • Android Architecture — обсуждение архитектуры приложений
    @Android_Architecture
  • Android Architecture — Summary (Сводка обсуждений с чата Android Architecture)
    @Android_Architecture_Summary
  • Dagger2
    @dagger_2
  • ReactiveX — русскоговорящее сообщество (Rx)
    @reactivex
  • Moxy – MVP библиотека под Android (рекомендую читать только после трудоустройства)
    @moxy_ru
  • Android NDK (C++) — русскоговорящее сообщество
    @ndk_ru
  • Android Arsenal (библиотеки для Android)
    @androidarsenal
  • Android ResId (новости и ресурсы по Android)
    @AndrResIdFb.

Интервью с работодателем и итоги

Если говорить о вопросах на собеседованиях, то в целом, у всех студий свои взгляды на этот счёт.
В большинстве случаев спрашивают и по Java, и по Android SDK и по технологиям. Но иногда встречаются места, где просят просто показать пример своего рабочего кода и спрашивают, а почему вот здесь вы сделали именно вот так. Готовым нужно быть и к первому и ко второму.

В нашей компании, я делю техническую часть первичного интервью с кандидатами на 3 этапа:

1) Вопросы по Java Core и ООП (см. Изучаем Java)
2) Вопросы по Android SDK (см. Изучаем Android)
3) Вопросы по технологиям и инструментам (см. Технологии и инструменты)

На втором этапе собеседования, как правило, даётся небольшое техническое задание, или же анализируется существующий код.

В 80% случаев, интервьюеры задают одни и те же вопросы по Java.

Надеюсь, мой личный опыт и наблюдения могут быть полезными для начинающих Android-разработчиков. В следующей статье, мы разберём подробно самые популярные вопросы на собеседованиях по Android SDK и таким технологиям, как Dagger2, Retrofit2, RxJava и Realm.

]]>
http://techmas.ru/blog/baza-znaniy-android-razrabotchika/feed/ 0
Реализация push уведомлений при разработке мобильных приложений http://techmas.ru/blog/realizatsiya-push-uvedomleniy-v-mobilnyih-prilozheniyah/ http://techmas.ru/blog/realizatsiya-push-uvedomleniy-v-mobilnyih-prilozheniyah/#respond Tue, 28 Apr 2015 19:42:25 +0000 http://techmas.ru/blog/?p=85

Технология Push Notification в мобильных приложениях появилась достаточно давно. В отличие от классической модели «клиент-сервер», она подразумевает отправку сообщений от сервера к клиенту, которую инициирует не клиент, а сервер. Сам клиент же является подписчиком.

Сам термин Push Notification имеет отношение не только к области мобильных приложений. Широкую известность он получил благодаря компании Apple, которая внедрила в iOS 3 технологию Apple Push Notification Service (APNS). Справедливости ради, стоит отметить, что компания Google в ОС Android реализовала такой сервис практически на год раньше.

Ключевое преимущество Push Notification: приложение не обязательно должно быть запущено, чтобы уведомление отобразилось на экране мобильного телефона. Посредником для таких уведомлений является операционная система. Это позволяет экономить как трафик, так и заряд батареи устройства.

Рассмотрим общую схему Push Notification на примере сервиса APNS от компании Apple:

Работа уведомлений на примере APNS выполняется следующим образом:

  1. Мобильное приложение регистрируется в операционной системе для получения Push уведомлений
  2. Операционная система запрашивает у APNS токен устройства
  3. Приложение получает токен устройства от сервера APNS…
  4. …И отправляет его на сервер. В дальнейшем сервер будет пользоваться этим токеном для отправки уведомлений
  5. При наступлении определенного разработчиком события сервер отправляет Push-уведомления через APNS, используя токен(ы) устройств(а)
  6. APNS рассылает уведомления.

 

Push уведомления для основных мобильных платформ — iOS, Android, Windows Phone — различны в деталях. Так, например, все сервисы сообщают идентификаторы устройств на которые не следует рассылать уведомления (например, если приложение было удалено). Но если сервис компании Google — Google Cloud Messaging (GCM) возвращает идентификаторы таких устройств сразу же, то у APNS существует так называемый сервер обратной связи (feedback server), с которого достаточно один раз в сутки забирать список таких идентификаторов. Таких различий немало, поэтому неудивительно появление промежуточных сервисов, берущих на себя рутинную работу.

Когда же разработка мобильного приложения выполняется с помощью какого-либо кроссплатформенного решения, например, Appcelerator, то подобный промежуточный сервис чаще всего оказывается интегрированным в подобное решение. Для упомянутого выше Appcelerator таким сервисом является Appcelerator Cloud Services — ACS.

ACS предоставляет дополнительный сервис каналов (channels) уведомлений. По сути, канал является буквенно-цифровым идентификатором, объединяющим несколько устройств. Конечно, ACS предоставляет возможность отправлять Push Notification и по токену устройства.

Поскольку ACS берёт на себя рутину по обновлению информации об устройствах и взаимодействии с GCM и APNS, схема взаимодействия уже выглядит иначе.

Screen_Shot_2015-04-28_at_22.39.36

 

В разрабатываемое мобильное приложение внедряется ключ, выданный ACS. Сервер, пользуясь этим ключом, может, в частности:

  1. Получить список каналов и устройств, подписанных на эти каналы;
  2. Подписать устройства на определенные каналы (как, впрочем, и «отписать» устройства от каналов);
  3. Отправить Push-уведомления как для всех устройств, так и по определенным каналам или токенам устройств;
  4. Устройства получают уведомления от соответствующих сервисов (APNS или GCM).

Само уведомление представляет собой JSON-словарь, состоящий из токена девайса, полезной нагрузки (payload) и некоторой служебной информации. Полезная нагрузка — это собственно данные, которые будут отправляться на устройство.

В заключение стоит отметить, что Push Notification, несмотря на всю простоту и удобство, являются всё же ненадёжной технологией, т.к. доставка такого сообщения не гарантирована. Так что если ваша задача – надёжный обмен сообщениями между клиентами или между клиентами и сервером, придётся поискать какой-либо другой способ передачи информации.

]]>
http://techmas.ru/blog/realizatsiya-push-uvedomleniy-v-mobilnyih-prilozheniyah/feed/ 0
Разработка для Apple Watch (на примере приложения для банков) http://techmas.ru/blog/razrabotka-dlya-apple-watch-na-primere-prilozheniya-dlya-bankov/ http://techmas.ru/blog/razrabotka-dlya-apple-watch-na-primere-prilozheniya-dlya-bankov/#respond Thu, 26 Mar 2015 08:55:12 +0000 http://techmas.ru/blog/?p=83 bank1

Официальный анонс Apple Watch оставил ряд вопросов как для разработчиков приложений, так и для будущих пользователей часов. Однако, уверенность, что это устройство найдет своих пользователей и откроет принципиально новые перспективы для всех носимых устройств, пожалуй, есть уже сейчас. Что же они из себя представляют для разработчика?

На примере базового приложения для банковского сектора, разработанного компанией Techmas, рассмотрим процесс создания рабочих программ для Apple Watch.

Вообще говоря, сами часы является дополнительным монитором к iPhone. Это означает, что код выполняется не на самом носимом устройстве, а на мобильном телефоне. Для этого используется специальный фреймворк WatchKit, который взаимодействует с iPhone следующим образом:

.bank2_m

Сами приложения создаются в знакомой для iOS разработчика среде Xcode (начиная с версии 6.3). Для этого нужно указать поддержку проекта iOS шаблонов для экрана часов Apple Watch:

.bank3_m

Часы могут быть оснащены одним из двух вариантов сенсорного IPS-экрана: 1.34″, 272×340 и 1.54″, 312×390. Время работы в режиме ожидания – 72 часа, в активном режиме – 18 часов. Это накладывает некоторые ограничения на интерфейс приложения, дизайнеры которого должны, с одной стороны, придерживаться минимального использования ресурсов, а с другой, отразить максимум функциональности на экране небольшого носимого устройства:

.bank4_m

Разрабатываемые приложения для Apple Watch бывают 3 типов:

  1. Glances. Используются для отображения информации и уведомлений, требующих некоторых действий со стороны пользователя.
  2. Notifications . Также создаются для уведомлений пользователей и могут быть короткими (на один экран) и длинными (на несколько экранов со скроллом). Такие уведомления могут использовать текст, изображение и кнопку для перехода на приложение в iPhone.
  3. WatchKit Apps. Полноценное приложение для Apple Watch.

Таким образом, созданное приложение может как дополнять уже имеющееся приложение на iPhone, например, уведомлениями на часы об операциях и действиях, так и быть самостоятельным инструментом.
Уведомления:

.bank5_m

Полноценное приложение:

.bank6_m

 

Как преимущество, один и тот же программный пакет для WatchKit одновременно адаптируется разработчиком для связки с существующим приложением на телефоне в виде дополнительного экрана, а также готов служить в виде независимого приложения на электронных часах.

Можно предположить, что наиболее востребованными направлениями разработки для носимых устройств в будущем будут, во-первых, приложения для оперативного контроля действий (банки, операторы связи, СМИ). Во-вторых, приложения для мониторинга здоровья с помощью набора функций HealthKit.

]]>
http://techmas.ru/blog/razrabotka-dlya-apple-watch-na-primere-prilozheniya-dlya-bankov/feed/ 0
Инструменты разработки мобильных приложений http://techmas.ru/blog/instrumentyi-razrabotki-mobilnyih-prilozheniy/ http://techmas.ru/blog/instrumentyi-razrabotki-mobilnyih-prilozheniy/#respond Wed, 18 Mar 2015 23:37:19 +0000 http://techmas.ru/blog/?p=79 platforms

Известно, что все мобильные операционные системы имеют свой язык и для разработки приложений: ObjectiveC для iOS (теперь, конечно, и Swift), Java для Android, С# для Widows Phone. Создавая даже самое с простое приложение, нужно помнить не только об особенностях разработки на этих языках, но и поддерживать единую функциональность на всех платформах. Проблемы в таком подходе очевидны, это и дополнительные сроки на разработку, и сложность поддержки приложения в будущем, и невозможность повторного использования кода.

Но есть ли другие варианты?

Конечно, корпоративные решения, высоконагруженные сервисы, приложения со сложной бизнес-логикой могут и должны быть реализованы с помощью базовых языков платформы. Это обеспечит быструю работу, отказоустойчивость, защиту данных и корректную работу всего заявленного функционала. Однако, как показывает практика, большинство задач могут быть решены с помощью так называемых кросс-платформенных решений быстрой и недорогой разработки приложений для мобильных устройств. Рассмотрим самые популярные из них:

Xamarin

1. Xamarin

С помощью Xamarin можно создавать нативные мобильные приложения на C#. Это означает, что ключевой функционал (40-60% кода) может быть общим для каждой платформы, тогда как версии для iOS, Android и Windows Phone должны иметь свои особенности. Среда разработки: Xamarin Studio или плагин для классического инструмента Microsoft Visual Studio.

phonegap

2. PhoneGap

Пожалуй, самое популярное и простое решение. По своей сути, приложения на PhoneGap представляют собой мобильные кросс-платформенные сайты, которые создаются с помощью HTML5 и JavaScript. При выполнение такие приложения запускают локальный браузер и используют дополнительные библиотеки для доступа к некоторым функциям телефона. Как преимущества такого подхода, разработка мобильного приложения не требует уникального кода для каждой платформы. Но, как следствие, скорость работы и ограничения браузера сразу дают понять пользователю с чем он имеет дело.

.Appcelerator_m

3. Appcelerator Titanium

Несмотря на то, что (как и PhoneGap) Appcelerator в качестве языка разработки мобильных приложений использует Javascript, это принципиально разные инструменты. Результатом разработки с помощью Titanium являются нативные приложения, которые используют службы операционной системы. Кроме того, Appcelerator имеет ряд облачных сервисов, которые позволяют управлять пользователями, отслеживать использование приложения и осуществлять другие аналитические функции.

]]>
http://techmas.ru/blog/instrumentyi-razrabotki-mobilnyih-prilozheniy/feed/ 0
Создание мобильного приложения с помощью 1С-Битрикс http://techmas.ru/blog/sozdanie-mobilnogo-prilozheniya-c-pomoshhyu-1s-bitriks/ http://techmas.ru/blog/sozdanie-mobilnogo-prilozheniya-c-pomoshhyu-1s-bitriks/#respond Mon, 16 Feb 2015 23:12:41 +0000 http://techmas.ru/blog/?p=77 Screen_Shot_2015-04-17_at_02.10.47Продукт «1С-Битрикс: Мобильное приложение» — это технология, позволяющая быстро разрабатывать приложения под iOS и Android для сайтов, созданных на платформе 1С-Битрикс.
Что она из себя представляет «под капотом»?

Главное преимущество для разработчика мобильного приложения — теперь не надо поддерживать два отдельных приложения для Android и iOS, этим занимается компания «1С-Битрикс».

Продукт базируется на технологии BitrixMobile 3.0, которая позволяет создать кроссплатформенные мобильные приложения. Разработка полностью ведётся на HTML5/Javascript/CSS, взаимодействие с функциями телефона и нативным интерфейсом мобильного устройства осуществляется через специальную JS-библиотеку — BXMobileApp. Доступны все функции телефона: GPS, Информация об устройстве, Акселерометр, Файловая структура, Адресная книга и прочие.

Можно выделить несколько этапов создания приложения для мобильного устройства:

  1. Концепт дизайна, его верстка и настройка под разные OS. Используем инструмент «Конструктор мобильного приложения»:
    • Создание базового макета серверной части приложения на платформе BitrixMobile.
    • Настройка параметров нативных элементов приложения.
    • Настройка параметров мобильного приложения по платформам — Android и iOS.
  2. Разработка функционала. Вы создаёте только сам функционал приложения на HTML5/Javascript/CSS.
  3. Тестирование программного кода производится через специальное приложение для разработчиков.
  4. Покупка лицензии на мобильное приложение.
  5. Заполнение формы добавления приложения, на сайте 1c-bitrix.ru.
  6. Регистрация аккаунта на Google Play и iOS Dev Center.
  7. «1С-Битрикс» опубликует от вашего имени готовое приложение в AppStore и Google Play (Срок рассмотрения заявки «1С-Битрикс» — от 2х недель).

Преимущества платформы 1С-Битрикс:

  • Разработка мобильного приложения на HTML5/Javascript/CSS. Любой современный сайт разрабатывается с применением данных технологий. Нет необходимости подключать дорогостоящих специалистов в сфере разработки под Android и iOS платформы.
  • Выпуск обновления не требует перевыпуск приложения. Любые изменения в логике работы сразу отображаются в мобильном приложении. Если на сайте включено кэширование, изменения появляются после сброса кэша или после истечения срока его жизни.
  • Пользователи устанавливают приложение через AppStore и Google Play. Для них это обычная программа.
  • Мобильное приложение удобно для коллективной разработки, легко масштабировать выпуск.
  • Не нужно придумывать свой API. При разработке используется API 1С-Битрикс, со всеми его возможностями, произвольный PHP код, а также BXMobileApp.
  • Обычные страницы Битрикс, обычные компоненты. Только ряд дополнительных требований к верстке.
  • Единая разработка для всех мобильных платформ.
  • Поддержка WebRTC
  • Поддержка API соцсетей (авторизация, комментарии)
  • Единый сервис push-уведомлений

И все же, ключевым преимуществом разработки с 1С-Битрикс является возможность создания мобильного приложения «из коробки». Это решение идеально подойдет для магазинов и сайтов, которые уже используют платформу 1С-Битрикс и планируют создать приложение на базе имеющегося решения.

]]>
http://techmas.ru/blog/sozdanie-mobilnogo-prilozheniya-c-pomoshhyu-1s-bitriks/feed/ 0
Специфика разработки мобильных приложений http://techmas.ru/blog/spetsifika-mobilnoy-razrabotki/ http://techmas.ru/blog/spetsifika-mobilnoy-razrabotki/#respond Wed, 14 Jan 2015 14:09:37 +0000 http://techmas.ru/blog/?p=74 1

Современные операционные системы мобильных устройств открывают новые горизонты возможностей для разработчиков и пользователей мобильных приложений. В недалеком прошлом даже самые простые приложения требовали отдельной специальной логики для взаимодействия с аппаратной частью. Сейчас популярные мобильные платформы Android, iOS, Windows Phone предлагают готовый набор инструментов для работы с камерой, GPS-навигатором, сетью, картой и другими службами. Приложения становятся богаче и универсальней.

Но стал ли от этого сам процесс разработки быстрее для программиста и дешевле для заказчика?

Сегодня разработчики мобильных приложений сталкиваются с новым вызовом. Обладая потенциально неограниченными возможностями, мобильные технологии все еще имеют ряд значительных ограничений в сравнении с классическим процессом создания программных систем. Наиболее важные аспекты:

  1. Размер экрана. Внедрение смартфонов в повседневную жизнь требует от разработчиков адаптации дизайна под небольшие экраны большого количества различных устройств. Пользователи ожидают одинакового поведения мобильного приложения как для телефонов, так и планшетных компьютеров. По последним исследованиям 99.5% мобильного трафика происходит с 2000 разрешений. Остальные 0.5% включают в себя еще 498000 устройств.
  2. Отсутствие мыши и клавиатуры. Несмотря на то, что социальные сети и музыка занимают около 40% используемых мобильных приложений, функционал всех приложений должен быть адаптирован для пользователей любого возраста и уровня компьютерного знания.
  3. Ограничение работы батареи и памяти мобильного устройства. Самые яркие, удобные и функциональные приложения в первую очередь сталкиваются с суровой реальностью ограничений по ресурсам.
  4. Зависимость от сети. Любое приложение должно уметь адаптироваться и существовать как в условиях доступа к информации в сети Интернет, так и в автономном режиме. Отдельно стоит вопрос его работы в фоновом режиме.
  5. Обновление и добавление новых данных. Главным способом распространения приложений остаются их магазины: AppStore, Google Play, Windows Store. В то время как новые возможности веб-сайтов могут отражаться моментально, мобильные приложения должны проходить проверку в своих магазинах. Эта проверка может занимать от пары часов до нескольких месяцев.

По разным источникам, время жизни приложения до выхода следующей версии составляет около 7 месяцев. Залогом успеха в быстром создание и эффективном продвижение мобильных приложений остается только слаженная работа команды разработчиков и всех участников проекта.

]]>
http://techmas.ru/blog/spetsifika-mobilnoy-razrabotki/feed/ 0