5 причин не начинать писать приложение под macOS-iOS

в 5:00, , рубрики: iOS, MacOS, notes manager, open source, swift, заметки, разработка под iOS, Разработка под MacOS

Привет! Я терпел четыре года, и таки решился написать о своем хобби проекте. Если коротко о себе, то я типичный разработчик подсевший на макбуки в эру, когда ноутов с хорошей батареей толком и не было.

Мой проект — программа для ведения заметок в markdown и plain text. Возможно вы слышали о FSNotes, а если нет, то можете сами взглянуть, весь код лежит на GitHub, под MIT лицензией.

Линк на репозиторий

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

Модерация в AppStore

Начну с самого больного — модерации. Так как выгружать кроме как в AppStore приложения у Apple нельзя (будет нельзя в случае macOS), то ты по факту становишься заложником команды ревьюеров.

В самом начале мне неоднократно отказывали в публикации.

Самый последний раз мне вставили палки в колеса почти на три месяца. Я поднял восстание открыв issue https://github.com/glushchenko/fsnotes/issues/695

Apple удалось продавить, так как заметка попала в топ на Hacker News и её прочли десятки тысяч человек. Через неделю мне дали добро, но какими усилиями?

Лимитированные API

Я переписал движок синхронизации файлов раза четыре, пока удалось добиться нужного результата, это месяцы работы. Вы не найдете примеров трекинга переименованых файлов в iCloud Documents.

При синхронизации файлов через iCloud Drive метаданные теряются, так мне пришлось переписывать систему управления тегами, что точно не понравится вашим пользователям.

Доступ к файловой системе в iOS ограничен, и вроде как мы получили послабления в iOS 13, но API для отслеживания изменений во внешних директориях до сих пор нет.

Deprecated класс WebView, который я использую для печати документов. Его использовать уже с одной стороны нельзя, а с другой в WkWebView до сих пор нереализован метод print.

И многое многое другое, с чем вы обязательно столкнетесь.

Мобильное приложение

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

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

Плавная анимация в iOS это боль в случае необходимости отображения двух View одновременно на одном экране.

Обработка задач в фоне в случае с большей части API — невозможна.

Пользователи хотят поддержку iPad, зоопарк телефонов с челкой, разными dpi и т.д, все это очень сложно поддерживать. А если облажаешься рейтинг твоей программы утопят за считанные часы.

Локализация

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

Дальше подтянулись китайцы, арабы, японцы, французы и т.д. На данный момент пользователи сделали перевод на 12 языков, и это потянуло за собой свои проблемы.

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

После японцев пришли арабы, и как вы уже догадались они попросили, чтобы приложение отображало арабскую вязь справа налево.

Арабов починил, пришли хитрые европейцы, которые аллилуйя пишут на латиннице, но! Я узнал что есть люди, которые используют Dvorak и Colemak. И все шоткаты, которые я придумал для них не работают ​

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

Тут не хватает только русских, и да они тоже пришли... И рассказали, внезапно, какой у меня плохой английский :D

Деньги

Самое табуированное, разговор про деньги. Мое приложение сейчас в топ 5 категории Productivity, и это приносит скромные деньги. Если бы у меня не было основной работы, то на жизнь мне точно бы не хватило.

Я тащу проект сам, но если все это разделить на команду квалифицированных разработчиков/тестировщиков/маркетологов, то я не представляю как это продавать и не вылететь в трубу.

Перед тем как влезть в эту авантюру, тысячу раз подумайте, а нужно ли оно вам? Разработка для Apple это не про деньги — это фан для фанатов своего дела.

Автор:
madflux

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js