Что выбрать для изучения: язык Dart или Kotlin?

Привет всем! Я планирую начать изучение мобильной разработки и сейчас выбираю между Котлином и Дартом. <br/><br/> Визуально Котлин мне кажется более понятным, особенно потому, что у меня есть опыт в автоматизации тестирования на Java, что добавляет удобства в восприятии Котлина. <br/><br/> Оба языка активно развиваются: у Котлина есть КМПП, а у Дарта с Флаттером впереди новые возможности. <br/><br/> В будущем я хочу перейти к кроссплатформенной разработке, но понимаю, что мне нужно будет изучить и Котлин, и Свифт, а также Дарт, что означает изучение трёх языков программирования. <br/><br/> У меня есть несколько идей для приложений, и моя компания поддержала инициативу по созданию мобильного приложения (так как у нас нет мобильных разработчиков, я планирую пройти соответствующий курс). На данный момент компании не важна, на какой платформе будет первое приложение, но в будущем может возникнуть желание расширить на другую платформу. <br/><br/> В связи с этим у меня вопрос: насколько целесообразно изучать Котлин и затем КМПП, если у меня уже есть опыт с Дартом и Флаттером? Насколько оправдано использование Флаттера для разработки Android-приложения с возможностью будущей адаптации для iOS? <br/><br/> Также интересно, насколько актуально в настоящее время изучать и разрабатывать нативные приложения? По скорости и пользовательскому интерфейсу, насколько я вижу, разница на Дарте незначительна. 
  • 11 ноября 2024 г. 18:53
Ответы на вопрос 2
Привет! Ты задаешь очень важные вопросы, и давай попробуем разобрать их по порядку.

### 1. Котлин или Дарт?

**Котлин**:
- Это язык, ориентированный на разработку под Android. Если у тебя уже есть опыт с Java, тебе будет легче освоить Котлин, так как синтаксис во многом схожий, хотя и более лаконичный и современный.
- Котлин активно используется не только для мобильной разработки, но и для серверной, что расширяет возможности его применения.
- Kotlin Multiplatform (КМПП) позволяет создавать общие модули, что упрощает кроссплатформенную разработку, когда делается общий код для Android и iOS, но все еще потребует знания Swift для работы с нативными компонентами.

**Дарт**:
- Dart, вместе с фреймворком Flutter, позволяет разрабатывать приложения для iOS и Android с одного кода. Это очень удобно, если ты ориентируешься на быстрое создание кроссплатформенных приложений.
- Флаттер предлагает мощные инструменты для создания красивых и отзывчивых интерфейсов.
- Общая разработка с использованием Flutter позволяет быстрее выходить на рынок с меньшими затратами времени и ресурсов.

### 2. Кроссплатформенная разработка

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

Однако, если у тебя есть возможность и желание углубиться в нативную разработку, Котлин — отличная опция, особенно с потенциалом использования КМПП для совместного кода.

### 3. Актуальность нативной разработки

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

### 4. Выводы

- Если ты планируешь создавать кроссплатформенные приложения и у тебя уже есть опыт с Dart, начни с изучения Flutter.
- Если вы хотите получить более глубокое понимание платформы Android и готовы учитывать возможность создания нативного Android-приложения в будущем, то Котлин будет полезен.
  
Возможно, ты решишь объединить оба языка в своем обучении: начни с Flutter, чтобы создать первое приложение, а затем углубись в нативную разработку на Котлине. Это даст тебе гибкость и возможность выбирать наиболее подходящий инструментарий в зависимости от задачи. Успехов в обучении!
Открываешь список вакансий, ищешь доступные тебе, начинаешь учить то, что востребовано. После года работы начинаешь изучать остальные языки/платформы. Тебе сейчас кажется что это очень тяжело, учить несколько языков. Для новичка это реально так. После N лет опыта в разработке это перестает быть проблемой. Твоя задача сейчас найти работу в этой сфере. Для этого как я уже сказал - ищи там куда легче зайти.
Похожие вопросы