Comments 47
Пожалуйста, продолжайте писать про реальные кейсы.
Надо просто оценивать риски и понимать цену этого, так как есть часть кода, которая не контролируется как свой.
Если писать всё самому, то такой проект имеет риск никогда не запуститься из-за высокой сложности.
Да и до какого уровня можно спуститься? Взять работу с БД. Отказаться от библиотеки и напрямую работать с sqlite файлами или полностью писать свою реализацию протокола работы с MySQL?
Тоже бодаемся с реалмом. Удалить его есть задача. Но никак руки не доходят.
Не добавляли, поэтому и выпиливать не придется
Сколько лет работаю с Realm одно удовольствие. Каскадное удаление уже давно завезли кстати. Это правда что есть много нюансов и легко выстрелить в ногу, но когда имеешь хороший опыт не вижу проблем. У Room их намного больше...
Вполне может быть.
Статьей я хотел показать, что не все просто с популярным инструментом, надо понимать его задачи, сильные стороны и особенности.
Особенно методология и организация работ по рефакторингу.
Я так понимаю что ошибку с миграций (которая была первым звоночком) не получилось поймать в CI тестах на апдейт приложения, поскольку она случалась не между текущей и предыдущей версией а между текущей и какой-то древней?
пока читаешь статью складывается ощущение что проблема была далеко не в рилме ) а рилм первый кто отказался работать в таких условиях и потребовал рефакторинга кода ) история интересная, читать приятно ) спасибо )
Но мне кажется есть какая-то излишняя щепетильность.
Типа камон, это просто приложение чтоб заказать пиццу, без обид.
Тут нет важных данных. Это не ПО для жизнеобеспечения)
Если бы приложение раз в год предложило условно снова выбрать город я бы глазом не моргнул. Думаю как и остальные люди.
Человек не обновлялся полтора года и тут обновился. Вам так сильно важно чтоб у этого плюс минус единственного человека все сработало идеально? Стерли бы все к чертям и дело с концом, пусть на чистую все создается грузится
Человек может заказывать и несколько раз в месяц. Почему у него буквально между двумя запусками должны пропасть какие-то настройки?
И естественно я не о чем то критичном, типа слетевшей авторизации.
Как пользователь скажу что меня больше бы выбесило 6 раз за неделю обновлять ваше приложение чем один раз снова тыкнуть свой город.
Стоило ли тратить ресурсы, мучать всю команду и пользователей апстора из-за пары граждан что не обновляли приложуху целых полтора года)
Опять же, за это время вы могли поправить то что беспокоит многих людей. Или улучшить то что нуждалось в этом.
Включите автобновление на телефоне :-)
И ненавижу ежедневные апдейты с шаблонным тестом :(
Позвольте немножко фидбека оставить
Статья заставила установить ваше приложение на телефон (купил новый пару месяцев назад, а так стояло)
Первый запуск.
На милисекунду появляется список стран и тут же без анимации пушится контроллер уже с городами. Так понимаю определилась страна это хорошо, но почему без анимации то? Страшно очень
Тыкаю в серч контроллер у него сразу отступ появляется и он съезжает вниз. Скролом не возвращается на место :) Наверное как-то связано с largeTitle
Кстати истории заказов почему-то нет. Они хранятся определенное время? Вполне возможно что заказывал года полтора назад
На главной банер с акцией по Apple Pay
По нажатию всплывает карточка с описанием и кнопкой показать.
Кнопка просто скрывает карточку. Немного сбивает с толку. Что я должен был увидеть то :)
У всех «питательных» товаров кнопка i в карточке продукта показывает всплывающее окно с пищевой ценностью. Но есть товары типа «Додо Клюв»
И эта кнопка не делает ничего. Так если нет доп. информации может стоит кнопку скрыть?
Карточки с пиццами мое почтение. Очень красиво и прикольно :)
Особенно та где половинки выбирать
Храним в файле, в UserDefaults только пара айдишников.
Пока не мегрировали, но как предполагаю может быть.
- Заводим новую модель, старую оставляем рядом.
- Даем репозиторию пачку модейле что он может прочитать.
- Если не смог самую новую прочитать, то читает предыдущую. Если смог, то должна вызваться функция миграции из одной модели в другую. Все типизировано, легко тестировать.
- После миграции сохраняет данные.
Но я предполагаю, что большинство репозиториев можно будет просто снести и заново получить с сервера.
Ну и, кроме того, Realm имеет настройку удалять БД при миграциях: можно их не писать, а просто чистить базу. Как я понял из ответа, примерно к тому же и пришли в UserDefaults.
Можно чистить при миграции.
А еще откат версии надо обрабатывать в другом месте, если файл не прочитался.
А еще если места на диске нет. Много этих «еще»
А вот про «много еще» было бы интересно послушать — правда, желательно, с обеих сторон. Если это возможно, конечно. На этом примере открывается одна из сравнительно редких возможностей решить одну задачу двумя разными способами и сравнить их на практике. Как правило бывает, что разработчики выбирают одно из решений, реализуют его. И видят все плюсы/минусы полученного решения, а плюсы/минусы других решений можно оценить только умозрительно. А в вашем случае можно сесть, составить таблицу параметров и расставить оценки кандидатам. Получится объективный счет.
Быстрый, простой, сложный: как мы выпилили Realm