Nativní verze movapp.cz pro iPhone/iPad

Related tags

Utility swift ios
Overview

Cílem Movapp.cz je usnadnit dorozumění mezi Čechy a Ukrajinci. Mова [mova] znamená ukrajinsky jazyk. Movapp je aplikace pro trénink jazyků.

Projekt vzniká v komunitě expertních dobrovolníků Česko.Digital. Kontakt: [email protected].

Zdrojový kód je pod MIT licencí. Texty, obrázky a audiosoubory jsou pod licencí CC BY-NC 4.0. Více na LICENSE

Chcete-li nám pomáhat na dalším rozvoji projektu, vyplňte formulář na cesko.digital/join a přidejte se do Slacku na kanál #ua-movaapp.

Použité technologie

  • SwiftUI + Swift Packages
  • iOS 15+
  • iPad (TODO)
  • Mac Catalyst (TODO)
  • Apple Watch (TODO)

Hacking

Jestli chceš přidat nové funkce, nebo máš nápady tak se připoj k nám na Slack.

Základní použití je jednoduché:

git clone [email protected]:cesko-digital/movapp-apple.git movapp-apple
cd movapp-apple

Další informace najdete v souboru CONTRIBUTING.

Podklady

Comments
  • Chybějící ikona pro Watch app

    Chybějící ikona pro Watch app

    App Store mě poslal k šípku, že nám chybí ikona:

    ITMS-90713: Missing Info.plist value - A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'cz.movapp.app.watchkitapp'. Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7.

    @pionl, mrkneš na to, prosím?

    opened by zoul 11
  • Refactored Dictionary data model

    Refactored Dictionary data model

    Datový model

    • Většinou není potřeba ručně psát init(from decoder: Decoder) throws - kompilátor je dost chytrý na to aby to zvládnul odvodit.
    • Většinou není potřeba psát ani DecodingKeys - JSONDecoderu lze nastavit např. keyDecodingStrategy = .convertFromSnakeCase.
    • Nebojte se zanořovat typy (struktura JSONu jde pak vidět na první pohled a ještě to tvoří relativně hezký "namespacing").

    Obecně

    • Je dobré se vyvarovat používání ! (force unwrap). Může jednoduše způsobit crash a v drtivé většině případů se tomu dá lehce vyhnout použitím if let/guard let.
    • V případě použití SwiftPreview na komponentu (ne celou obrazovku) je dobré použít následující modifikátor .previewLayout(.sizeThatFits) (případně dohromady s .padding). Náhled pak bude zobrazovat pouze komponentu a ne celý simulátor, tzn. jde jich vidět daleko více a není tam tolik bílého místa.

    • Trošku jsem překopal jak fungují "favorites". Zkoušel jsem to a zdá se mi, že všechno funguje, ale přece jen znáte appku líp, tak menší test by možná nebyl na škodu... :pray:
    • Extrahoval jsem nějaké věci, které se používají jako pro náhledy do Dictionary+UIExamples, ale obecně by bylo lepší je spíš definovat pokaždé znovu. Člověk pak nemusí odcházet ze souboru pokud chce změnit náhled, atd...
    opened by pistelak 9
  • Zprovoznit překlad bez podepisování

    Zprovoznit překlad bez podepisování

    Aktuálně to máme nastavené tak, že každý překlad v Xcode vyžaduje podpisy. To je hloupé kvůli novým přispěvatelům, kterým takhle házíme klacky pod nohy. Dalo by se to nastavit tak, aby mohl kdokoliv po běžném checkoutu spustit aplikaci na simulátoru? (Zavést třeba novou výchozí konfiguraci?)

    opened by zoul 8
  • Automatizace PR release

    Automatizace PR release

    • Lokálně udělat bundle exec fastlane release a pushnu změny s tagem (možná by to rovnou mohl udělat ten command
    • Github action spustí toto https://github.com/marketplace/actions/create-pull-request
    • Vezme se commit message jako title (což vždy bude Release XX) ${{ github.event.head_commit.message }} (https://stackoverflow.com/a/67145320)
    • Script automaticky udělá novou branch který se pak smaže (release/TAG?) -> do release branche
    • Github action poběží jenom na tag
    on:
      push:
        tags:        
          - v1.**
    
    • Nastaví se reviewer na @zoul, @pionl, @met
    • Zbytek už známe :)
    opened by pionl 7
  • Úprava release managementu

    Úprava release managementu

    Pro zamezení review při vývoji nové verze je potřeba upravit release management. Místo PATCH version budeme zvyšovat BUILD number.

    • V Xcode se nebude měnit verze vůbec (marketing), pouze build number -> https://docs.fastlane.tools/actions/increment_build_number/
    • Formát tagu vMAJOR.MINOR.PATCH.BUILD -> vždy se veme marketing verze + se přidá build number
    • Jakmile se provede release do produkce AppStore Spustit se zvýšení PATCH number (může být zase fastlane command). Tag se nebude dělat, pouze se změní marketing verze a pushne se.

    Pro zjednodušení (co se v aplikacích častěji používá) bych asi i použil MAJOR.MINOR místo MAJOR.MINOR.PATCH.

    Je to takto dostačující?

    opened by pionl 5
  • Include back section title as back button + light status bar

    Include back section title as back button + light status bar

    #41 a #42

    @petrillek přepínání barvy baterky atd by bylo docela náročné udělat (co jsem našel). Sjednotil jsem spíše tedy pozadí pod status barem (chová se to pak lépe se skrečování). Abecedu jsem upravil aby využila nový prostor a trochu změnil barvy přepínána. Simulator Screen Shot - iPhone 13 - 2022-04-26 at 21 35 57 Simulator Screen Shot - iPhone 13 - 2022-04-26 at 21 36 10

    Simulator Screen Shot - iPhone 13 - 2022-04-26 at 21 36 04

    opened by pionl 4
  • Přidat deployment pipeline pro automatický upload binárek do App Storu

    Přidat deployment pipeline pro automatický upload binárek do App Storu

    Průběžné TODO:

    • [x] Zavést celoorganizační repo pro certifikáty
    • [x] Nastavit Fastlane v projektu
    • [x] Zprovoznit podepisování v GitHub Actions
    • [x] Zavést release větev
    • [x] Udělat GitHub Action pro upload z release větve
    opened by zoul 4
  • Přidání seznamu přispěvatelů

    Přidání seznamu přispěvatelů

    Do aplikace by jsme chtěli dát členy týmu - v rámci této úpravy navrhuji udělat jednotnou strukturu json, kterou si pak v budoucnu klidně bude stahovat aplikace.

    Struktura by byla formou předem domluvených "skupin":

    • Vývoj Apple aplikace
    • Vývoj Android aplikace
    • Vývoj webu
    • Tvorba obsahu
    • Ostatní?

    Dal bych tam pouze seznam jmen? Chceme dát i odkaz na nějaká profil? Json bude podporovat i případně společnosti.

    {
        "data": [
           {
                   "section": {"name": "Vývoj Apple aplikace"},
                   "persons": [{"name": "František"}]
           }
         ]
    }
    

    Souhlas? @met

    opened by pionl 3
  • Refactor how languages are stored / managed + add tab icons

    Refactor how languages are stored / managed + add tab icons

    • Předělal jsem sound service -> nyní lze globálně v aplikaci sledovat zda se něco hraje
    • Předělal jsem jak se definují jazyky v aplikaci na lepší řešení @zoul připadá ti to ok?
    • Se změnou jazyků nyní jsme schopni přehrávat jak cs tak uk + lze zvuk vypnout (mění se ikonka)
    • předělal jsem TabBarItem

    Simulator Screen Shot - iPod touch (7th generation) - 2022-04-04 at 23 11 11 Simulator Screen Shot - iPod touch (7th generation) - 2022-04-04 at 23 11 13

    opened by pionl 3
  • setup swiftlint

    setup swiftlint

    Errory jsem opravil nebo zakázal v configu.

    Aktuálně je v projektu: Done linting! Found 587 violations, 0 serious in 71 files. Z toho je velká většina buď taby/mezery na prázdném řádku nebo řádek delší jak 120 znaků. To jde odstranit swiftlint autocorrect nebo swiftlint --fix.

    Pipeline je nastavená aby kontrolovala pouze změněné soubory.

    Před buildem se překontrolují soubory na localu, jen musíš mít lokálně nainstalovaný swiftlint. Do scriptu můžeme ještě přidat i automatické opravy chyb.

    Kdyžtak napiš, jestli ti dávají pravidla smysl

    opened by kubito 2
  • Jednodušší proces pro vydávání releasů

    Jednodušší proces pro vydávání releasů

    Closes #74. Původně jsme releasy vyráběli z nových commitů ve větvi release, ale jelikož GitHub nedělá fast-forward merge, přijde nám to zbytečně zamotané, takže bychom zkusili vyrobit nový release z každého release tagu v main? Konkrétně tahle změna by měla zařídit, že se do App Storu nahraje nový build vždy po pushnutí nového tagu ve formátu v… do main.

    Bavili jsme se taky o tom, že se nám na původním workflow s release PRs líbila ta možnost review. Říkal jsem, že u toho tag-based workflow tohle asi nepůjde, ale jde to, viz Reviewing deployments. Fungovalo by to tak, že by po pushnutí tagu naskočila deploy akce ve stavu Waiting a vyžadovala by potvrzení od předem definovaných reviewers. Podle dosavadních zkušeností mně to zatím přijde spíš zbytečné, zkusil bych čistě to workflow založené na tags a uvidíme, jestli budou potřeba nějaké korekce?

    Až tohle mergnem, můžem zahodit větev release.

    opened by zoul 2
  • Unit testy na kontrolu stavu dat

    Unit testy na kontrolu stavu dat

    Je potřeba vytvořit unit testy:

    • [ ] Kontrola načítání jsonů z movapp-data (team.v1.json, stories, uk-sk-dictionary.json, etc)
    • [ ] Kontrolovat zda máme v projektu všechny potřebné resources (mp3 pro slovíčka, pohádky, znaky a obrázky pro pohádky)
    opened by kubito 0
  • Menu - FamilyControls for opening external links for For Kids rating

    Menu - FamilyControls for opening external links for For Kids rating

    If we want for kids rating, we need to implement family controls confirmation before opening any link in menu.

    https://developer.apple.com/documentation/familycontrols

    opened by pionl 1
  • Create screenshots for all the views in all languages and publish-it for review

    Create screenshots for all the views in all languages and publish-it for review

    For easy review it would be create to create UI test that will screenshot all views in all languages and publishes the index.html on GitHub Pages for a review (and send a slack message to #ua-projekty-preklady-do-vsech-jazyku)

    GitHub Actions 
    opened by pionl 0
  • Run automated tests in Github actions + add asserts

    Run automated tests in Github actions + add asserts

    • we have already some tests, but no asserts
    • run them in GitHub Actions

    Should be easy, bundle exec fastlane tests should be prepared and do the trick

    help wanted GitHub Actions 
    opened by pionl 0
Owner
Česko.Digital
Skrz jedničky a nuly měníme Česko k lepšímu
Česko.Digital
TypeStyle is a handy app for iPhone and iPad that generates text using different styles and decorations. It is a native Swift iOS app.

TypeStyle TypeStyle is a handy app for iPhone and iPad that generates text using different styles and decorations. It is a native Swift iOS app. Featu

Eugene Belinski 31 Dec 14, 2022
A utility that reminds your iPhone app's users to review the app written in pure Swift.

SwiftRater SwiftRater is a class that you can drop into any iPhone app that will help remind your users to review your app on the App Store/in your ap

Takeshi Fujiki 289 Dec 12, 2022
A Swift app, named 'iPose', for iPhone's pose measurement based on Swift.

iPhone's pose measurement based on Swift. This is a Swift app, named 'iPose', for iPhone's pose measurement based on Swift. This is a side project to

Ghasem Abdi 3 Jul 26, 2022
IPadLiDARExperiment - Simple experiment to capture Depth data from the iPad Pro's LiDAR

iPad LiDAR Experiment Simple experiment to capture and display Depth data from t

Fabio 16 Jul 25, 2022
Run animations at high frame rates on iPhone 13 Pro

Run animations at high frame rates on iPhone 13 Pro Background When using a UIViewPropertyAnimator to animate objects on iPhone 13 Pro, CoreAnimation

Duraid Abdul 5 Aug 8, 2022
A Mac command-line tool that generates kick-ass Jamf Pro reports.

KMART - Kick-Ass Mac Admin Reporting Tool A command-line utility generating kick-ass Jamf Pro reports: Features Reporting on the following Jamf Pro ob

Nindi Gill 86 Dec 15, 2022
redis-pro 是一款 redis 轻量客户端管理工具, 采用SwiftUI 编写

redis-pro 是一款 redis 轻量客户端管理工具, 采用SwiftUI 编写

cmushroom 583 Jan 5, 2023
Example usage of FingerprintJS Pro inside a iOS WebView.

FingerprintJS Pro iOS Integrations An example app and packages demonstrating FingerprintJS Pro capabilities on the iOS platform. The repository illust

FingerprintJS 34 Nov 30, 2022
Add the Notch on the menubar like the new MacBook Pro.

iNotch Add the Notch on the menubar like the new MacBook Pro. Installation This app works on macOS 11.0 or later. Download iNotch.zip from releases pa

Takuto NAKAMURA (Kyome) 8 Apr 3, 2022
Pretend you have the latest MacBook Pro!

Notch Simulator Pretend you have the latest MacBook Pro! Download Thank you, everyone! Notch Simulator has been downloaded over 2000 times! ?? Twitter

Megabits_mzq 666 Dec 23, 2022
Control the listening mode on your AirPods Pro in the Touch Bar or Menu Bar.

NoiseBuddy Change noise cancelling settings on your AirPods Pro or Beats Solo Pro directly from your Mac's Menu Bar or Touch Bar. I wanted an easier w

Guilherme Rambo 692 Dec 27, 2022
Example usage of FingerprintJS Pro inside a iOS WebView.

FingerprintJS Pro iOS Integrations An example app and packages demonstrating FingerprintJS Pro capabilities on the iOS platform. The repository illust

FingerprintJS 34 Nov 30, 2022
Pro Counter, SwiftUI WatchOS, Open Source Project

Countio | SwiftUI WatchOS App App Screenshots || What is Countio Countio is simple WatchOS App made with Swiftly SwiftUI. You can count anything quick

Dc7 4 Feb 7, 2022
A command line tool to parse pricing from a pdf and generate an updated csv file for House Call Pro

A command line tool to parse pricing from a pdf and generate an updated csv file for House Call Pro

hhe-dev 10 Feb 17, 2022
Will Powell 1.2k Dec 29, 2022
BioViewer - Protein (.pdb, .cif and .fasta) viewer for iPhone, iPad and Mac, using SwiftUI + SceneKit

BioViewer - Protein (.pdb, .cif and .fasta) viewer for iPhone, iPad and Mac, using SwiftUI + SceneKit

Raúl Montón 16 Dec 21, 2022
A "time ago", "time since", "relative date", or "fuzzy date" category for NSDate and iOS, Objective-C, Cocoa Touch, iPhone, iPad

Migration 2014.04.12 NSDate+TimeAgo has merged with DateTools. DateTools is the parent project and Matthew York is the project head. This project is n

Kevin Lawler 1.8k Dec 2, 2022
iOS/iPhone/iPad Chart, Graph. Event handling and animation supported.

#EChart A highly extendable, easy to use chart with event handling, animation supported. ##Test How To Use Download and run the EChartDemo project is

Scott Zhu 646 Dec 27, 2022
📱 Wire for iOS (iPhone and iPad)

Wire™ This repository is part of the source code of Wire. You can find more information at wire.com or by contacting [email protected]. You can find

Wire Swiss GmbH 3.2k Jan 8, 2023
A Swift mailing list client for iPhone and iPad

Due to costs and lack of interest, I’ve had to take down the Charter service. If you’re interested in running your own copy, get in touch and I can se

Matthew Palmer 526 Dec 24, 2022