iSilver dev 🍏
46 subscribers
129 photos
16 videos
1 file
47 links
Переобуваюсь в iOS разработчика в 45.
Swift Xcode SwiftUI
Евгений - @icleverstyle
Download Telegram
Получил первый отзыв от личного тестировщика моих приложений (жена).

Кстати, очень жесткий тестировщик )))

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

Сразу в его жестах видишь его ожидания от взаимодействия с интерфейсом.

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

Что выявил тест:
- нужен онбординг
- сложно было найти способ удалить случайно добавленный элемент
- нет возможности добавить элемент сразу с нужным временем, например если заносишь данные за день, а не в моменте, приходится ставить на текущее время, потом изменять время
Я вернулся…

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

Добавил склонение глаголов в карточки.

Но основная про Лема которую пришлось решать - обратная совместимость карточек.

Изменил структуру карточки и все колоды и карточки пропали (((
👍1
Как вы ведете учет личных финансов?

Изучаю тему для создания соответствующего приложения.
Stop overthinking.
Just do it.


… Сказал я себе и начал.

Приложение для ведения домашней бухгалтерии.

На немецком: Haushaltsbuch

SwiftUI

Пока сделано:
- главный экран-меню
- форма добавления расхода
- форма редактирования расхода
- журнал расходов
- настройка статей расходов (2 уровня)
Media is too big
VIEW IN TELEGRAM
Haushaltsbuch

Небольшой прогресс:
- доходы
- перемещения
- журнал операций
Haushaltsbuch
(Домашняя бухгалтерия)

Прогресс:
- добавил справочник валют
- работаю над добавлением Кошельков и Карт

Основная сложность изменение в БД
Media is too big
VIEW IN TELEGRAM
Итоги первой недели разработки приложения для ведения домашней бухгалтерии

Формы добавления и редактирования записей:
- доход
- перемещение между картами и кошельками
- расход

Журнал операций
- фильтр по типу операций (доход, расход, перемещение)
- фильтр по тегу

Операция фиксации остатков в кошельках и картах с журналом операций.

Сводный отчет по расходам:
- выбор периода отчета
- фильтр по валютам
- фильтр по тегу

Справочники
- категории (статьи) расходов
- источники доходов
- магазинов (мерчантов)
- валют
- кошельков и карт
- тегов

Ввод данных
- заполнение форм в приложении
- голосовая команда Siri открывает приложение и форму добавления нового расхода по голосовой команде Добавить расход
- автозаполнение формы расхода на основании данных буфера обмена (скопированный текст СМС-уведомления банка)

Фишки
- при открытии формы ввода фокус и курсор в поле ввода суммы, клавиатура появляется.

- 3 кнопки «Сохранить»: в навбаре, строке ввода суммы и в конце формы

- кнопки сохранить активны при заполнении, выборе обязательных полей и кнопок.

- Магазин (мерчант) используется для автозаполнения категорий расходов.

Ближайшие планы:
- бюджет
- отчеты план/факт
- пользователи и совместное использование (семейный доступ).
❤‍🔥1
Домашняя бухгалтерия
HausHaltsBuch

Прогресс...

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

Потерял прогресс за ВС. Весь ПН восстанавливал потерянное. Восстановил не до конца, решил отчеты пока не делать.

2. Со вчера нырнул в "кроличью нору" реализации совместного доступа:
✔️ Авторизация через Apple ID
- Приглашения для совместного доступа
- Синхронизация данных через CloudKit


Про авторизацию через Apple ID

- Оказывается данные и email пользователя передаются от apple ID один раз при первой верификации.

Соотвественно надо сохранять имя пользователя на случай если пользователь разлогиниться и залогиниться снова.

Если сохранить локально, то при переустановке приложения данные потеряются.

Решение:
- при первой авторизации сохранил локально в UserDefaults
- синхронизировал сразу в iCloud (CloudKit)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1
Открытие недели: Swift Data не умеет делать совместный доступ 🥲

Большую часть недели посвятил миграции с Swift Data на Core Data.

В процессе думал, что создать с нуля на Core Data было бы проще, но решил получить опыт миграции.

Почти закончил миграцию:
- все справочники
- все транзакции
- единственный отчет

Осталось мигрировать:
- авторизацию через Apple ID
- работа с Siri

Потом исправить мелкие ошибки UI и навигации и можно приступать к реализации совместного доступа.
Shared zone в CloudKit

Миграцию на Core Data завершил.

Перешел к реализации совместного доступа, который реализуется через Shared zone в CloudKit.

Создал включение Общей зоны.
Сейчас вношу правки в Транзакции и Справочники, чтобы данные читались и записывались в зависимости от текущего режима: Личный или Общий.

Что это значит для пользователя:
- могу вести часть расходов/доходов не показывая супругу (так же и в обратную строну)
- другая часть - общие расходы/доходы видны обоим.

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

Основная мысль: как же я хочу уже весть учет в своем приложении, как же это будет удобнее, чем сейчас в Гугл Таблице.

Заношу все расходы в таблицу Гугл:
- данные оплат по картам на основании смс (в приложении транзакции часто проводятся позже до 3-х дней)
- данные наличных оплат вносим с супругой в общий чат в ТГ, переношу в Гугл таблицу.

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

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

С нетерпением жду когда смогу упростить себе жизнь и сделать ее чуточку счастливее с моим новым приложением.
Ребрендинг ещё не выпущенного приложения

Geldidel - (нем.) Денежный ёж
Совместный доступ - это ад какой-то

Все перепробовал, закопался. Но никак общий доступ не создается. 3 недели бьюсь.

Сделал аутентификацию Apple ID, оказалось можно без нее. Сделал приглашения, научился передавать их без проверки приложения в App Store. Приглашение принимается, но делиться можно, а полноценно пользоваться одной БД - нет.

Создал пустой проект, чтобы на минималках шаг за шагом реализовать функционал общего доступа, совместной работы с БД.

Фиг вам.

Всеми ИИ-шками перепроверил, их ответ:

"Ты сделал всё идеально, но ошибка всё равно появляется.

Ты сделал всё идеально, код безупречен,
ошибка уже не в коде, а в слое между NSPersistentCloudKitContainer и iCloud-контейнером."

Остается только:
- Новый пустой проект
- Новый контейнер БД
- Скопировать код и запустить без старых следов разработки

...
Победил совместный доступ

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

Тренировался на кошк.. ой на простых данных: список покупок, трекер привычек, для простой и удобной отладки.

Проблема пришла откуда не ждали:
Данные приглашенного пользователя корректно сохранялись и синхронизировались у других пользователей, а владелец (создатель) общей зоны данных вылетал с ошибкой: записи по умолчанию сохранялись в private zone, а не shared zone.

Все перерыл: от прав доступа, до создания записей по умолчанию в приватной зоне.

Оказалось, что неверно извлекались значения зависимостей полей (reference).

Сейчас задача перенести это решение в приложения Домашней бухгалтерии.

Хочется уже заняться UI/UX задачами и выпустить MVP версию.
Почти MVP…