Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

23.10.2022

🍏🪶❣️ Сьогодні пробую свій проєкт з HealthKit почати писати на Swift. Головною причиною є бажання поекспериментувати: я давно хочу зробити на SwiftUI щось реальне, і, може, на цей раз вдасться.

З роками Swift та SwiftUI помітно дорослішають, та писати на них все менш і менш боляче (сказати “приємніше” ще не виходить.) Все тут чуже: мова та її парадигми, стандартна бібліотека, модель додатка, навіть редактор (програє VSCode за можливостями розширення та за зручністю) та документація (не дуже зручна і не дуже гарно написана.) Ніяк не можу заохочувати писати на Swift, якщо воно вам не треба.

Тому, до речі, я великий прихильник React Native: вийде не набагато гірше, але на знайомих технологіях. Цим не варто нехтувати.

Але все ж таки, що у Swift є такого, що у RN немає, або є, але гірше? Головне, що я знаю — це база Core Data, а особливо CloudKit, тобто синхронізація через iCloud. Зараз в RN немає гарного рішення — тож якщо вам потрібна якась синхронізація, треба мати бекенд, авторизацію і таке інше. Натомість у Swift дані синхронізуватимуться між пристроями без зайвих дій та акаунтів. Але, якщо ви робите додаток для вже наявного сервісу, то це не має значення.

Також будь-яка системна інтеграція — а їх чимало — завжди ускладнюється у RN. Наприклад, як в моєму випадку HealthKit: бібліотека у Swift достатньо обʼємна, тому повної обгортки для RN немає.

Можна зробити й гібридне рішення: модуль на Swift, який буде передавати до React Native необхідні значення — тобто замість API загального призначення, зробити вузький API для вашої бізнес-логіки. Це в мене зараз план C.