@daniyar_bogdanov

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

Добрый день! Ещё летом начал изучать программирование в сфере андроид-приложений. Появилась идея, и я решил создать своё первое приложение, которое будет полезно мне и возможно другим юзерам, но возник вопрос о создании такого приложения и на ios, так как есть друзья и знакомые, которые имеют айфоны. Наткнулся на статьи о компиляции приложения. После 3 часов изучений я решил узнать мнения у опытных в данной сфере программистов. Задал вопрос на CyberForum, но толком никто ничего не написал. Единственный хороший и ясный ответ был, что это геморрой и лучше писать на swift или c-objective с нуля. Хотелось бы узнать мнения в этом сообщество и нкаонец-то определится, так как я поставил себе дедлайн до нового года.
Мои вопросы:
1. Дейтсвительно ли компиляция на kotlin/native геморрой?
2. Сложна ли сама компиляция?
3. Если я уже напишу код и сделаю приложение, могу ли я потом его скомпелировать? Или нужно компилировать с самого начала разработки?
Заранее спасибо всем тем, кто уделил время на мой вопрос и написал ответ!
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Как человек, проработавший больше года на данный момент с kmpp, могу сказать, что ты не потянешь. Технология, в принципе, рабочая, но очень сырая.
Твои вопросы поставлены некорректно. Сама компиляция не так уж сложна. Сложен процесс разработки, который позволит её осуществить. Если ты просто напишешь приложение под Андроид, оно у тебя никогда не скомпилируется под айос. Потому что библиотеки и фреймворк другие. Чтобы сделать мультиплатформенное приложение, нужно делать его с самого начала таким. А чтобы писать на котлине под айос, тебе придется изучить фреймворки айосные. Материалов на котлине про это нет, так что придется изучать на свифте и самому адаптировать под котлин. Это сложно, там дикая куча граблей. Использовать тот же SwiftUI из котлина нельзя, можно только то, что имеет Objective-C api.
Кроме того, в нативе очень большие проблемы с моделью памяти. Написать мультитредовый код для двух платформ очень сложно. А мультитрединг нужен хотя бы для походов в сеть и бд. Если кто-то скажет тебе "корутины" - смейся над ним, корутины в нативе однопоточные. Елизаров и ко не смогли с текущей моделью памяти реализовать многопоточные нативные корутины. Сказали, что ушли думать, будут переделывать модель памяти.

Вывод: изучай себе спокойно андроид, доводи до ума приложение. Это сложно, и займёт у тебя достаточно времени. Захочешь айос - изучишь Свифт или найдёшь единомышленника:)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Senior .NET developer
1. Нет обычная работа, только нужно знать как
2. нажимаешь скомпилировать или запускаешь сборщик
3. Сможешь. Отдельный вопрос 100 баксов за девелоперский аккаунт в год.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы