Стани премиум член и добиј попуст на 2000+ производи и куп други бенефити!

Зззборче: Комплетен workflow (од идеја до готов производ)

Fatal1ty_

Großmeister
28 февруари 2008
23.806
33.955
roka.mk
Фаза 1: Идеја и концепт

Првичната идеа започна пред околу 3 можеби 4 години кога се појави зборле.мк. Како голем фан на Wordle а воедно и личност кој го сака македонскиот јазик и кирилицата како писмо генерално (иако сум реалтивно неписмен, тоа не ме спрецува да ја сакам мојата азбука :) )сакав да реализирам идеа да направам игра која ќе биде повеќе од погодување на еден збор дневно, пред се истото да има некаква „бизнис“ позадина. Она што е многу важно за мене е тоа што одкако ќе погодите или нема да го погодите зборот, истиот ќе прикаже со објаснување што значи, со тоа ќе имате можност секој ден да научите нови македонски зборви што можеби не сте ги знаеле.

Дефинирање на проблемот: недостасува квалитетна игра со зборови на македонски јазик, со правилна поддршка за кирилица.
Основна визија: дневна игра со погодување зборови (како Wordle), но на македонски, со дополнителни модови за играње.
Дефинирање на трите режими:
  • Дневен збор: ист збор за сите, еднаш дневно.
  • Погоди збор: вежбање со избор на должина и број на обиди.
  • СЛожувалка: лизгачка сложувалка со зборови.
Одлука за платформи: Android прво, потоа iOS. Технологија: Flutter (една база на код за двете платформи).

Фаза 2: Планирање и архитектура
Изготвување на спецификации поделени по фази (преглед на архитектурата, скрапер, дизајн, логика на игра).
Избор на технологии:
Flutter и Dart за апликацијата.
Riverpod за управување со состојба.
go_router за навигација.
shared_preferences за локално чување податоци.
Firebase за автентикација, база и ранг-листи.
Дефинирање на структурата на проектот: модели, екрани, виџети, состојба (state), сервиси, податоци.
Дефинирање на идентитет на апликацијата: име Зззборче, пакет mk.roka.zzzborce.
Зззборче да изгледа по интересно да не биде само Зборче досадно и монотоно.

Фаза 3: Подготовка на податоци (речник)
Идентификување на извор
: официјалниот дигитален речник на македонскиот јазик.
Пишување скрапер (Python) кој ги собира зборовите, дефинициите и граматичките ознаки.
Чистење на податоците:
Отстранување на сопствени именки (со голема почетна буква).
Отстранување на навредливи зборови преку листа за блокирање.
Правилна обработка на диграфните букви (се сметаат како една буква).
Пакување во датотеки со решенија по должина (4 до 7 букви) и листи за проверка на валидни зборови. Резултат: околу 18.000 зборови со дефиниции....запамтете ова ДЕФИНИЦИИ ќе ни треба за подоцна...

Фаза 4: Дизајн
Дизајн систем
: бои, типографија, растојанија, компоненти за повеќекратна употреба.
Теми: светла, темна и системска, со избор на акцентна боја и позадина (градиент или полна боја).
Пристапност: режим за далтонисти.
Фонтови: Neris низ целата апликација, Pobeda само во плочките во играта.
Дизајн на екрани: почетен екран, три режими, ранг-листа, поставки, помош, продавница.
Икони и брендирање: икона на апликацијата, адаптивни икони за Android, слики за картичките на почетниот екран.

Фаза 5: Развој на основната логика на играта
1. Логика за погодување зборови (евалуација во два премина за правилно означување на дупли букви).
2. Логика за сложувалката: генерирање решлива табла преку мешање со легални потези, идентитет на секоја плочка за анимации и за справување со исти букви.
3. Прилагодена македонска тастатура на екран со сите 31 буква.
4. Три режими поврзани преку заеднички контролери:
4.1. Дневен збор: детерминистички избор на збор по датум, без повторување повеќе од 365 дена.
4.2. Кежуал: избор на должина и обиди, мерач на тежина (од зелено до црвено).
4.3. СЛожувалка: 5x5 табла, четири зборови од пет букви и еден од четири букви.
4.4. Локално чување: статистика, дневна порта (еднаш дневно бесплатно), продолжување на започната игра само ако играчот направил потег.
4.5. Тајмери и одбројување: тајмер за игра во кежуал и сложувалка режим, живо одбројување до следниот дневен збор.

Фаза 6: Бекенд и сервиси (Firebase)
1. Креирање Firebase проект и поврзување со апликацијата.
2. Анонимна автентикација: секој играч добива идентитет без регистрација.
3. Firestore за облак синхронизација на статистиките и за ранг-листите.
4. Уникатни автоматски кориснички имиња со проверка да не се повторуваат.
Ранг-листи:
  • Дневно (најмалку обиди, потоа најбрзо време) и сите времиња (најдолга низа).
  • Кежуал (одиграни игри).
  • Сложувалка (најмалку потези и најдобро време).
Правила за безбедност на Firestore (секој корисник пишува само во својот дел).
Локални известувања: потсетник еден час пред полноќ по скопско време, за да не се прекине низата.

Фаза 7: Систем на асистенции (помош) и монетизација
Систем на асистенции
: три бесплатни на почеток, споделени, употребливи во Кежуал и Мозаик (не во дневниот збор).
Во режимите со зборови: открива значење на скриениот збор.
Во сложувалката: мести една плочка на нејзиното вистинско место, без да ја направи таблата нерешлива.
Заработка на асистенции: за добри резултати (малку обиди или брзо решавање).
Купувања во апликацијата (in_app_purchase iap):
Пакети асистенции и пакети дополнителни игри.
Купените ставки се траjни и преживуваат бришење на податоци.
Посветена страница Продавница со сите производи.
Цени: илустративен приказ во денари, наплата преку продавниците во долари.

Фаза 8: Тестирање
  • Единечни тестови (unit tests) за клучната логика: евалуација, сложувалка, дневен збор, асистенции, ранг-листа.
  • Статичка анализа (flutter analyze) без грешки.
  • Рачно тестирање на физички уред и емулатор за секој режим.
  • Тестирање на респонзивноста на различни големини на екран (телефон и таблет).
  • Проверка на темите, известувањата и синхронизацијата.

Фаза 9: Подготовка за објавување
1. Преминување на стабилна верзија на Flutter (stable channel) за издавачки билд.
2. Потпишување за Android:
3. Креирање клуч (keystore) со keytool.
4. Поврзување преку android/key.properties (надвор од Git).
5. Безбедносна копија на клучот и лозинките.
6. Верзионирање: единствена верзија во pubspec.yaml, зголемување на бројот на билд при секое качување.
7. Икони за сите платформи, вклучувајќи икона 1024x1024 за App Store.
8. Политика за приватност (задолжителна поради автентикација, база и купувања) и хостирање на јавна страница.
9. Материјали за продавниците: опис, слики од екран, промотивна графика.
10. Контрола на верзија: приватно GitHub складиште со правилно исклучени тајни (клуч, key.properties).

Фаза 10: Објавување на Google Play
1. Отворање сметка на Google Play Console (веќе имав постоечка, ако немате цената е 25 долари one time.
2. Креирање на апликацијата и пополнување на задолжителните секции: пристап, огласи, оцена на содржина, целна публика, безбедност на податоци, политика за приватност.
3. Креирање на производите за купување (еднократни производи) со точните идентификатори, сите активни.
4. Билд на потпишан пакет (flutter build appbundle --release).
5. Качување на внатрешна тест патека, додавање тестери и на листата за лиценцно тестирање (за бесплатни тест купувања).
6. Инсталација преку линкот за тестери и целосна проверка на купувањата и режимите, направени тест купувања.
7. Промовирање на тестираниот билд во продукција.
Важно: нови лични сметки може да имаат услов за затворено тестирање со најмалку 20 тестери во период од 14 дена пред пристап до продукција.
8. Праќање на преглед и објавување.

Фаза 11: Објавување на App Store (iOS) Ова е една од најкомплицираните фази во целиот процес на развивање
1. Потребен е Mac со Xcode и сметка на Apple Developer Ова чини 99 долари годишно.
2. Поврзување на iOS со Firebase: датотеката GoogleService-Info.plist додадена во Runner целта во Xcode.
3. Во Xcode: избор на тим за потпишување, додавање на можноста In-App Purchase (entitlements).
4. Билд на архива (flutter build ipa --release), качување преку Transporter или Xcode.
5. Во App Store Connect: креирање на апликацијата, пет потрошни производи со истите идентификатори, прашалник за приватност, слики од екран, поддршка и политика за приватност.
6. Тестирање преку TestFlight со sandbox тестер за купувањата.
7. Одговор на извозна усогласеност и праќање на преглед.

Ќе направам посебен текст за голготата што ја поминувам со фамозниот екосистем и лошото работење на Apple Developer

Во моментот на пишување на ова сеуште не ми е одобрена апликацијата на App Store. Чим биде одобрена ќе го додаам линкот тука


Фаза 12: По објавувањето
1. Следење: паѓања, оценки и коментари, аналитика на купувања.
2. Одржување: поправка на грешки, зголемување на верзијата и повторно качување за секое ажурирање.
3. Оптимизации во следна верзија: намалување на големината (R8), компресија на слики, целосна поддршка за edge-to-edge на нови Android верзии.
4. Можно зацврстување: серверска верификација на потврди за купување преку Firebase Cloud Functions.
5. Маркетинг: објави на форуми и заедници, слики и опис, повратни информации од играчите.
6. Планирање на нови содржини: нови режими, нови зборови, сезонски предизвици како и режим за 1на1 каде што ќе се наптреваруваат играчите меѓусебно.
________________________________________________________________________________________________________________________

Време на реализација:
- Не можам да измерам точно бидејќи е започната пред 3-4 години и стоеше во фиока долго време го чекаше својот ден.


Трошоци за развој (не го рачунам времето како трошок):
  • Првичните трошоци $99 за Apple Developer Account.
  • AI асистенција ~$100
  • Firebase $20 (ова е менливо, толку отиде за тестирање).

Скриншот од играта:
Screenshot_1785750078.png Screenshot_1785750093.png Screenshot_1785750109.png Screenshot_1785750113.png Screenshot_1785751147.png Screenshot_1785751186.png Screenshot_1785751196.png

Можете да ја превземете и тестирате на линковите подолу:

За android: Зззборче - Apps on Google Play
За ios: Ќе биде објавено чим на одобрат.

Благодрам за вниманието и поддршка, хејт ватева само напред...
 

Enquito

poweruser
8 август 2017
2.636
1.799
Многу добра идеја, јас имав слична идеја да направам апликација за креирање на зборови како крстозборка со понудени букви на Македонски јазик, слично како овас апликација
Но не знаев да ја средам монетизацијата, и интеграцијата со досадни реклами на секој чекор.
 
членови онлајн
мислења
теми
членови

Последни теми

Последни огласи

ИТ маркет

На врв Дно