Недавно я увидел этот вопрос на Quora и понял, что это очень важный вопрос:

По каким причинам можно изучать программирование для iOS, когда есть React Native?

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

Учитывая это, я ответил следующее:

По каким причинам можно было бы изучать программирование для iOS, когда есть React Native?

Две причины: настройка и оптимизация.

Если вам нужно добавить новую функцию, а для нее еще нет элемента React ... вы можете просто написать его самостоятельно! Если вы никогда не использовали XCode и не разрабатывали приложения для iOS с помощью Swift, то вы ограничены использованием только элементов React, которые создали другие разработчики iOS. .

Еще одна ключевая причина - оптимизация. В некоторых случаях использование React native приводит к неоптимальной производительности. Например, я создал приложение, в котором я хотел загружать локально сохраненные документы и отображать их на экране. С самим по себе RN было неприятно динамически загружать локальные файлы, и рендеринг занял немного больше времени, чем я хотел. Когда я вошел и написал его с использованием Swift и нативных элементов iOS, это было быстро, а код был намного проще.

Есть определенные вещи, которые пока что нельзя сделать с помощью React Native, или, по крайней мере, нельзя сделать хорошо без специального (быстрого) кода. Если вы знакомы с разработкой для iOS, это не проблема. Вы просто сделаете это сами. Если вы не знакомы с ним, значит, вы как бы зашли в тупик.

Надеюсь это поможет.

Однако после ответа на этот вопрос я столкнулся с критическим вопросом:

Стоит ли мне изучать нативную разработку под Android?

Судя по моему ответу о важности изучения разработки под iOS, кажется очевидным ответ да. Основываясь на способностях, которые мне дали мои знания в области разработки iOS, кажется вполне естественным, что я хотел бы потратить некоторое время на разработку Android, чтобы иметь те же возможности с версиями Android моих приложений.

До сих пор мой опыт позволял мне обходиться без значительных знаний в области разработки под Android (помимо, конечно, понимания Java). Если я решу создать больше приложений для Android в будущем, вероятно, будет стоить иметь некоторые базовые знания о нативной разработке Android ради оптимизации и настройки, Я упоминал ранее.

Однако возникает еще один интересный вопрос:

Как мне начать изучение нативной разработки под Android?

Традиционно можно изучать собственную разработку для Android, просто создавая постепенно более сложные приложения для Android изначально (а не с помощью RN) и используя все инструменты и навыки, которые они усваивают в процессе.

Однако после знакомства с собственной разработкой для iOS и React Native этот метод обучения может оказаться менее практичным. Может быть более разумным просто узнать о нативных аспектах Android, относящихся к каждому из моих проектов React Native, и постепенно накапливать свои знания об Android. и испытать то же самое.

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

Подвести итог:

Даже во времена React Native обучение нативной разработке для iOS и Android по-прежнему имеет преимущества настраиваемости и оптимизируемости.

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

Спасибо за прочтение.