7 причин выбрать React Native для разработки мобильных приложений

In this tutorial, you’ll learn how to use Android’s ListView to easily create scrollable lists, by creating a simple recipe list app using Kotlin.

Рисуем!

Так как в большинстве случаев разработка Custom View-комопонента занимает больше времени, чем работа с обычными View-компонентами, создавать их целесообразно только тогда, когда нет более простого способа реализовать специфичную особенность, или когда у вас есть ниже перечисленные проблемы, которые Custom View-компонент может решить:

  • Производительность. Если у вас есть много View-компонентов в одном layout-файле и вы хотите оптимизировать это с помощью создания единственного Custom View-компонента;
  • Большая иерархия View-компонентов, которая сложна в эксплуатации и поддержке;
  • Полностью настраиваемый View-компонент, которому нужна ручная отрисовка;

Если вы ещё не пробовали разрабатывать Custom View, то эта статья — отличная возможность окунуться в эту тему. Здесь будет показана общая структура View-компонента, как реализовывать специфичные вещи, как избежать распространённые ошибки и даже как анимировать ваш View-компонент!

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

Android

  • принципы SOLID и чистая архитектура;
  • активити и методы жизненного цикла, onSaveInstanceState/onRestoreInstanceState;
  • фрагмент и методы жизненного цикла;
  • контекст;
  • сервисы;
  • Broadcast Receiver;
  • интенты;
  • Handler/Looper;
  • AsyncTask;
  • что такое процесс;
  • Inter Process Communication;
  • сериализация и парселизация;
  • view: жизненный цикл, кастомные view;
  • Flavours/Builds;
  • архитектура MVP и MVVM;
  • многомодульность;
  • что такое OkHttp и зачем он нужен;
  • RxJava:
    • Hot и Cold observables;
    • разница между map и flatMap;
    • как создавать Observable;
    • разница между RxJava 1 и RxJava 2;
    • что такое BackPressure.
  • Dagger 2:
    • аннотация Named;
    • скоупы в Dagger 2.
Читайте также:  Обзор экранов смартфонов: технология, разрешение

Проверка навыков программирования происходит нечасто. Обычно кандидату дают какой-либо сайт, где можно писать псевдокод прямо в окне браузера. Его видят обе стороны собеседования. Часто дают небольшие задачи по сортировке элементов в списке или получению того или иного элемента. Вот что нужно, чтобы подготовиться к таким задачам:

  • тренироваться в ветвлениях и условиях;
  • знать, что такое предикат;
  • знать основные методы пакетов Colleсtions, Array, которые работают с преобразованием коллекций и сортировкой;
  • решать задачи на алгоритмы и сортировки.

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

Адаптеры — заполнение списка данными

Компоненту ListView требуются данные для наполнения. Источником наполнения могут быть массивы, базы данных. Чтобы связать данные со списком, используется так называемый адаптер.

Адаптер для стандартного списка обычно создаётся при помощи конструкции new ArrayAdapter(Context context, int textViewResourceId, String[] objects).

  • context — текущий контекст
  • textViewResourceId — идентификатор ресурса с разметкой для каждой строки. Можно использовать системную разметку с идентификатором _list_item_1 или создать собственную разметку
  • objects — массив строк

Метод setAdapter(ListAdapter) связывает подготовленный список с адаптером.

Переходим к java-коду. Сначала мы получаем экземпляр элемента ListView в методе onCreate(). Далее мы определяем массив типа String. И, наконец, используем адаптер данных, чтобы сопоставить данные с шаблоном разметки. Выбор адаптера зависит от типа используемых данных. В нашем случае мы использовали класс ArrayAdapter.

Адаптеры — заполнение списка данными

Отступление

Если вы будете брать строки из ресурсов, то код будет таким:

Читайте также:  Как создать папки для программ на iPhone 6 и iPhone 6 Plus

А будет еще лучше, если вы воспользуетесь специально предназначенным для этого случая типом ресурса . В файле res/values/ добавьте следующее:

И тогда в коде используйте для объявления массива строк:

Запустив проект, вы увидите работающий пример прокручиваемого списка. Правда, созданный список пока не реагирует на нажатия. Но при нажатии выбранный элемент выделяется цветным прямоугольником (в версии Android 2.3 был оранжевый, а в Android 4.0 — синий, потом был серый цвет и т.д.).

Утечка памяти

У всего есть плюсы и минусы. Не так ли?

Я говорил о многих положительных аспектах React Native. Но у него есть несколько проблем, таких как большой размер приложения, утечка памяти в приложениях Android из-за ненужных процессов, которые выполняются в фоновом режиме, медленный запуск приложения из-за некоторых зависимостей и так далее. Но вы можете исправить и решить эти проблемы в некоторой степени.

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

Вы можете решить проблему утечки памяти в приложении для Android с помощью прокручиваемых списков, таких как SectionList, FlatList и VirtualList. Избегайте использования ListView, чтобы избавиться от утечек памяти. Чтобы решить проблему медленного запуска приложения, вам нужно уменьшить количество зависимостей в вашем приложении и использовать компоненты, которые работают очень хорошо.

Последние мысли

Если вы внимательно посмотрите на преимущества и проблемы React Native, вы поймете, что плюсы этой платформы значительно перевешивают минусы. Проблемы, которые вы заметите, невелики. Недостатки этой платформы незначительны, так как вы получите невероятные преимущества.

Читайте также:  Google Фото 5.31.0.359860651 для Андроид

Простое взаимодействие между React Native и нативной, легкой публикацией в Google Play Store, возможность создания ТВ-устройств и интеграция с существующими приложениями — вот некоторые интересные функции и преимущества, которые предоставляет этот современный инструмент разработки мобильных приложений.

iBuildApp

У iBuildApp один из самых простых drag and drop редакторов, встроенная система управления контентом и более тысячи шаблонов приложений на выбор! Эта платформа для создания приложений одна из самых универсальных, когда речь заходит о создании красивых типовых приложений без знания программирования.

Сами шаблоны может и не выглядят сногсшибательными, но конструктор использовался более миллиона раз, и это о многом говорит. Плата за сервис начинается с базового плана в долларов в месяц, далее есть бизнес-план за 39 долларов и план для предприятия или агентства за 99 долларов в месяц. Вы можете попробовать бесплатную пробную версию, прежде чем инвестировать деньги в платформу.