Продолжаю осваивать Firebase 👩💻
Добавил интеграцию с
🟥 Документация - на уровне!
Достаточно пройтись по инструкции: https://firebase.google.com/docs/crashlytics/get-started?platform=ios
Отдельно понравилась настройка
Главной мотивацией подключения
Как делать UI тесты и “мокать” Firebase - до сих пор загадка для меня 🤔💭
Добавил интеграцию с
Crashlytics
- это сервис, который показывает, когда и почему твоё приложение падает у пользователей. Он собирает все вылеты в одном месте и помогает быстро понять, что сломалось, чтобы починить.Достаточно пройтись по инструкции: https://firebase.google.com/docs/crashlytics/get-started?platform=ios
Отдельно понравилась настройка
Xcode
для загрузки Apple Debug Symbols (dSYM)
, не сам процесс, а идея. После этого отчёты об ошибках становятся человекочитаемыми: вместо адресов памяти видно имена методов.Главной мотивацией подключения
Crashlytics
был баг, который я обнаружил после релиза. Снова ною про тесты, они очень нужны, но писать их сложно - мешает интеграция с Firebase.Как делать UI тесты и “мокать” Firebase - до сих пор загадка для меня 🤔💭
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Зарегал домен 🌐
У меня появился мой первый домен, и этого первенца зовут grocemelier.app
Создавая это приложение, я хочу пройти путь наиболее похожий на создание продукта. Независимо от результата, уверен, что получу уйму полезных навыков, и познакомлюсь с тем, что на работе встретить почти никогда не удаётся.
✍️ Регистрация не заняла много времени, напротив, это было одно из самых простых. Плати и получай 🤑
Но даже при регистрации домена мне удалось узнать что-то новое. В интерфейсе настройки обнаружил типы записей в DNS. Если я знал, что такое
✍️ Создание landing страницы порядком меня помучало (я потратил на это 5 часов)
Поскольку я уже повязан Firebase, то и тут я решил воспользоваться их продуктом Firebase Studio.
Firebase Studio по своей сути является генератором сайтов, приложений, ai решений. И да, это снова AI - Gemini.
Интерфейс представляет собой VS Code👩💻 запущенный на виртуалке (поэтому доступ к терминалу имеется). Туда накинуты расширения, которые показывают Preview сайта, интегрируются с Gemini Agent, и отсюда же можно задеплоить приложение на Google Cloud инфраструктуру посредством Firebase Hosting.
Я создал несколько версий, но на текущий момент оставил только одну - самую простую. Сейчас я смогу собирать emails потенциальных пользователей для участия в Beta тестировании (для этого буду использовать TestFlight). Возможно стоит разместить сразу TestFlight кнопку, но так целостность страницы нарушается, я оставил это немного на попозже - пока буду инвайтить руками.
✍️ По пути применяю полученный опыт
В качестве базы использую Firebase Firestore. Есть функции для отправки нотификаций в телеграм. Firebase Studio умеет работать только с nextjs фреймворком (просил написать на Vue.js - отказался, сказав, что не такой умный), но другие языки/платформы так же поддерживаются.
В общем я получаю очень много интересного опыта и позитивных эмоций занимаясь этим проектом 🥰
У меня появился мой первый домен, и этого первенца зовут grocemelier.app
Создавая это приложение, я хочу пройти путь наиболее похожий на создание продукта. Независимо от результата, уверен, что получу уйму полезных навыков, и познакомлюсь с тем, что на работе встретить почти никогда не удаётся.
Но даже при регистрации домена мне удалось узнать что-то новое. В интерфейсе настройки обнаружил типы записей в DNS. Если я знал, что такое
A
, NS
, то MX
и CNAME
стали для меня открытием. Разрабатывая backend очень редко приходится сталкиваться с этими вещами, а времени, свободного времени, всегда мало. Даже сказал бы - его нет!Поскольку я уже повязан Firebase, то и тут я решил воспользоваться их продуктом Firebase Studio.
Firebase Studio по своей сути является генератором сайтов, приложений, ai решений. И да, это снова AI - Gemini.
Интерфейс представляет собой VS Code
Я создал несколько версий, но на текущий момент оставил только одну - самую простую. Сейчас я смогу собирать emails потенциальных пользователей для участия в Beta тестировании (для этого буду использовать TestFlight). Возможно стоит разместить сразу TestFlight кнопку, но так целостность страницы нарушается, я оставил это немного на попозже - пока буду инвайтить руками.
В качестве базы использую Firebase Firestore. Есть функции для отправки нотификаций в телеграм. Firebase Studio умеет работать только с nextjs фреймворком (просил написать на Vue.js - отказался, сказав, что не такой умный), но другие языки/платформы так же поддерживаются.
В общем я получаю очень много интересного опыта и позитивных эмоций занимаясь этим проектом 🥰
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Добавил кнопу логина через Google 🖥
Над этой темой пришлось попотеть.
🔴 Во первых, почему-то Google Sign-In не включен в Firebase SDK
В Firebase Console можно включить различные механизмы Authentication. Но по какой-то непонятной мне причине, https://github.com/google/GoogleSignIn-iOS нужно подключать отдельно.
🔴 Во вторых, документация расходится с практикой
Хорошо описано как добавить Firebase Auth. Есть примеры, и много сторонних статей. Но есть такой пример:
https://firebase.google.com/docs/auth/ios/google-signin
Который у меня не сработал.
Нашел, что я не единственный столкнулся с этой проблемой: https://github.com/firebase/firebase-ios-sdk/issues/15151
Помимо того, что в файле
В документации https://firebase.google.com/docs/auth/ios/google-signin про это ни слова…
🔴 Ну и в третьих, это линковка аккаунтов (тут телеграм сходит с ума и рисует красный кружок 😁)
Если залогинился под одним провайдером, потом под другим, их можно слинковать как одни и те же. Но похоже только 2… Для большинства проектов это совсем не проблема. Но штука не очевидная🥵 (а тут супер-эмодзи совсем перестали работать)
Над этой темой пришлось попотеть.
В Firebase Console можно включить различные механизмы Authentication. Но по какой-то непонятной мне причине, https://github.com/google/GoogleSignIn-iOS нужно подключать отдельно.
Хорошо описано как добавить Firebase Auth. Есть примеры, и много сторонних статей. Но есть такой пример:
https://firebase.google.com/docs/auth/ios/google-signin
guard let clientID = FirebaseApp.app()?.options.clientID else {
fatalError("Firebase clientID not found. Ensure GoogleService-Info.plist is properly configured and added to the project.")
}
let config = GIDConfiguration(clientID: clientID)
GIDSignIn.sharedInstance.configuration = config
Который у меня не сработал.
Нашел, что я не единственный столкнулся с этой проблемой: https://github.com/firebase/firebase-ios-sdk/issues/15151
Помимо того, что в файле
GoogleService-Info.plist
CLIENT_ID, это же значение нужно прописать в Info.plist
в поле GIDClientIDВ документации https://firebase.google.com/docs/auth/ios/google-signin про это ни слова…
Если залогинился под одним провайдером, потом под другим, их можно слинковать как одни и те же. Но похоже только 2… Для большинства проектов это совсем не проблема. Но штука не очевидная
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Ну что друзья, время порадоваться!
Наконец приложение выпущено, конечно, сырое, но уже получившее пару апдейтов:
https://apps.apple.com/de/app/grocemelier/id6745146245
Основная цель, по которой я заводил этот канал, в какой-то степени достигнута, и даже года не прошло😅
Но это не конец пути, а скорее начало. В частности, это и начало обратного пути, к Kotlin.
За это время я узнал очень много, плюсом оно совпало с бумом AI, и от этого стало только увлекательнее.
Раздумываю сейчас над созданием версии для👩💻 и заодно реализацией некоторых важных фич (трудоемких, но все же нужных), от которых приложение должно стать на 999,99% удобнее и полезнее.
Наконец приложение выпущено, конечно, сырое, но уже получившее пару апдейтов:
https://apps.apple.com/de/app/grocemelier/id6745146245
Основная цель, по которой я заводил этот канал, в какой-то степени достигнута, и даже года не прошло
Но это не конец пути, а скорее начало. В частности, это и начало обратного пути, к Kotlin.
За это время я узнал очень много, плюсом оно совпало с бумом AI, и от этого стало только увлекательнее.
Раздумываю сейчас над созданием версии для
Please open Telegram to view this post
VIEW IN TELEGRAM
App Store
Grocemelier
Grosmelier - Your Personal Groceries Rating Library
Discover, rate, and remember the groceries you try - all in one place.
Grosmelier helps you keep track of what you’ve loved (or not to skip it next time), so shopping for food becomes simple, smart, and…
Discover, rate, and remember the groceries you try - all in one place.
Grosmelier helps you keep track of what you’ve loved (or not to skip it next time), so shopping for food becomes simple, smart, and…
🔥3👍1