Как происходит компиляция приложения на Kotlin под IOS?
=========================================================

 Добрый день! Ещё летом начал изучать программирование в сфере андроид-приложений. Появилась идея, и я решил создать своё первое приложение, которое будет полезно мне и возможно другим юзерам, но возник вопрос о создании такого приложения и на ios, так как есть друзья и знакомые, которые имеют айфоны. Наткнулся на статьи о компиляции приложения. После 3 часов изучений я решил узнать мнения у опытных в данной сфере программистов. Задал вопрос на CyberForum, но толком никто ничего не написал. Единственный хороший и ясный ответ был, что это геморрой и лучше писать на swift или c-objective с нуля. Хотелось бы узнать мнения в этом сообщество и нкаонец-то определится, так как я поставил себе дедлайн до нового года.  

Мои вопросы:  

1. Дейтсвительно ли компиляция на kotlin/native геморрой?  

2. Сложна ли сама компиляция?  

3. Если я уже напишу код и сделаю приложение, могу ли я потом его скомпелировать? Или нужно компилировать с самого начала разработки?  

Заранее спасибо всем тем, кто уделил время на мой вопрос и написал ответ! 

 Как человек, проработавший больше года на данный момент с kmpp, могу сказать, что ты не потянешь. Технология, в принципе, рабочая, но очень сырая.  

Твои вопросы поставлены некорректно. Сама компиляция не так уж сложна. Сложен процесс разработки, который позволит её осуществить. Если ты просто напишешь приложение под Андроид, оно у тебя никогда не скомпилируется под айос. Потому что библиотеки и фреймворк другие. Чтобы сделать мультиплатформенное приложение, нужно делать его с самого начала таким. А чтобы писать на котлине под айос, тебе придется изучить фреймворки айосные. Материалов на котлине про это нет, так что придется изучать на свифте и самому адаптировать под котлин. Это сложно, там дикая куча граблей. Использовать тот же SwiftUI из котлина нельзя, можно только то, что имеет Objective-C api.  

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

  

**Вывод**: изучай себе спокойно андроид, доводи до ума приложение. Это сложно, и займёт у тебя достаточно времени. Захочешь айос - изучишь Свифт или найдёшь единомышленника:) 

 1. Нет обычная работа, только нужно знать как  

2. нажимаешь скомпилировать или запускаешь сборщик  

3. Сможешь. Отдельный вопрос 100 баксов за девелоперский аккаунт в год.