Projekt

Obecné

Profil

Request #75980

PROJEKT Bc. práce - Úpravy mobilní aplikace Rádio Haná, Skyrock a Metropole pro iOS

Přidáno uživatelem Zdeněk Pazdera před asi 1 rok. Aktualizováno před 26 dny(ů).

Stav:
In progress
Priorita:
Normal
Přiřazeno:
Začátek:
2023-03-23
Uzavřít do:
% Hotovo:

100%

Odhadovaná doba:
Strávený čas:
Notes for invoicing:

Popis

Aktuální rozsah zadání a úprav:

  • Záložka kontakty
    • Přidat odkaz na adresu studia rádia (odkaz povede na otevření pozice v aplikaci mapy)
    • Odkaz na podcasty (různé pro každé rádio)
  • Domovská stránka/přehrávání
    • Zobrazovat poslední přehrávanou skladbu (aplikace dostává informace pouze o aktuální a následující skladbě, takže si bude muset názvy přehrávaných skladeb ukládat)
    • Doplnit odkaz na program (webové stránky) pod informacemi o přehrávání
  • Obecné funkce
    • Časovač pro spuštění/vypnutí rádia (musí fungovat na pozadí)
    • Upozornění uživatele na důležité novinky (něco jako lokální notifikace, podrobnosti bychom dále dospecifikovali)
  • Refactoring
    • Uklizení zbytečných globálních konstant dle konvence Swiftu
    • Částečný až kompletní přechod aplikace od UIKit ke SwiftUI
    • Dekompozice velkých view controllerů na samostatné logické části (data model, view model atp.)
Dodatečné poznámky:
  • V závislosti na požadavcích zákazníka některé části asi budou mít větší prioritu a nebudeme řešit v rámci bc práce. Pokud by bylo potřeba držet se při práci jednoho zadání po celou dobu, zaměřili bychom se dle domluvy hlavně na refactoring.
  • Při vývoji aplikace je potřeba počítat s podporou pro mobily i tablety.

Soubory

Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.57.34.png Zobrazit Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.57.34.png 1.78 MB Zdeněk Pazdera, 2023-03-27 20:00
Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.57.39.png Zobrazit Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.57.39.png 1.37 MB Zdeněk Pazdera, 2023-03-27 20:00
Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.57.46.png Zobrazit Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.57.46.png 1.55 MB Zdeněk Pazdera, 2023-03-27 20:00
Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.58.13.png Zobrazit Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.58.13.png 269 KB Zdeněk Pazdera, 2023-03-27 20:00
Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.58.18.png Zobrazit Simulator Screen Shot - iPhone 13 mini - 2023-03-27 at 19.58.18.png 209 KB Zdeněk Pazdera, 2023-03-27 20:00
photo_2023-08-13 19.37.24.jpeg Zobrazit photo_2023-08-13 19.37.24.jpeg 41.5 KB Zdeněk Pazdera, 2023-08-13 21:05
photo_2023-08-13 19.37.27.jpeg Zobrazit photo_2023-08-13 19.37.27.jpeg 55.7 KB Zdeněk Pazdera, 2023-08-13 21:05
photo_2023-08-13 19.37.29.jpeg Zobrazit photo_2023-08-13 19.37.29.jpeg 53.5 KB Zdeněk Pazdera, 2023-08-13 21:05
photo_2023-08-13 19.37.28.jpeg Zobrazit photo_2023-08-13 19.37.28.jpeg 101 KB Zdeněk Pazdera, 2023-08-13 21:05
photo_2023-08-13 19.37.30.jpeg Zobrazit photo_2023-08-13 19.37.30.jpeg 26.9 KB Zdeněk Pazdera, 2023-08-13 21:05
photo_2023-08-13 19.37.32.jpeg Zobrazit photo_2023-08-13 19.37.32.jpeg 11.1 KB Zdeněk Pazdera, 2023-08-13 21:05
Simulator Screenshot - iPad Air (5th generation) - 2023-08-13 at 21.27.58.png Zobrazit Simulator Screenshot - iPad Air (5th generation) - 2023-08-13 at 21.27.58.png 649 KB Zdeněk Pazdera, 2023-08-13 21:30
Simulator Screenshot - iPad Air (5th generation) - 2023-08-13 at 21.28.07.png Zobrazit Simulator Screenshot - iPad Air (5th generation) - 2023-08-13 at 21.28.07.png 1.04 MB Zdeněk Pazdera, 2023-08-13 21:30
Simulator Screenshot - iPad Air (5th generation) - 2023-08-13 at 21.31.25.png Zobrazit Simulator Screenshot - iPad Air (5th generation) - 2023-08-13 at 21.31.25.png 190 KB Zdeněk Pazdera, 2023-08-13 21:31
Simulator Screenshot - iPad Air (5th generation) - 2023-08-13 at 21.31.34.png Zobrazit Simulator Screenshot - iPad Air (5th generation) - 2023-08-13 at 21.31.34.png 1.25 MB Zdeněk Pazdera, 2023-08-13 21:31
photo_2023-08-31 12.56.39.jpeg Zobrazit photo_2023-08-31 12.56.39.jpeg 56.5 KB Zdeněk Pazdera, 2023-08-31 12:59
Simulator Screenshot - iPad Air (5th generation) - 2023-08-31 at 12.52.24.png Zobrazit Simulator Screenshot - iPad Air (5th generation) - 2023-08-31 at 12.52.24.png 183 KB Zdeněk Pazdera, 2023-08-31 12:59
photo_2023-08-31 12.56.37.jpeg Zobrazit photo_2023-08-31 12.56.37.jpeg 48.1 KB Zdeněk Pazdera, 2023-08-31 12:59
photo_2023-08-31 12.56.34.jpeg Zobrazit photo_2023-08-31 12.56.34.jpeg 45.3 KB Zdeněk Pazdera, 2023-08-31 12:59
photo_2023-08-31 12.56.32.jpeg Zobrazit photo_2023-08-31 12.56.32.jpeg 48 KB Zdeněk Pazdera, 2023-08-31 12:59
photo_2023-08-31 12.56.31.jpeg Zobrazit photo_2023-08-31 12.56.31.jpeg 23.4 KB Zdeněk Pazdera, 2023-08-31 12:59
photo_2023-08-31 12.56.27.jpeg Zobrazit photo_2023-08-31 12.56.27.jpeg 42.1 KB Zdeněk Pazdera, 2023-08-31 12:59
photo_2023-09-11 18.40.56.jpeg Zobrazit photo_2023-09-11 18.40.56.jpeg 49 KB Zdeněk Pazdera, 2023-09-11 18:41
photo_2023-09-11 18.40.52.jpeg Zobrazit photo_2023-09-11 18.40.52.jpeg 49.2 KB Zdeněk Pazdera, 2023-09-11 18:41
photo_2023-09-11 18.40.47.jpeg Zobrazit photo_2023-09-11 18.40.47.jpeg 30.4 KB Zdeněk Pazdera, 2023-09-11 18:41
photo_2023-09-11 18.40.49.jpeg Zobrazit photo_2023-09-11 18.40.49.jpeg 50.1 KB Zdeněk Pazdera, 2023-09-11 18:41
#1

Aktualizováno uživatelem Zdeněk Pazdera před asi 1 rok

#3

Aktualizováno uživatelem Zdeněk Pazdera před asi 1 rok

#4

Aktualizováno uživatelem Zdeněk Pazdera před 10 měsíc(ů)

#5

Aktualizováno uživatelem Zdeněk Pazdera před 9 měsíc(ů)

Feedback k prvnímu odevzdání

  • Kontakty
    - Styl hlavičky by měl být stejný jako u zprávy do rádia
  • Zpráva do rádia
    - Navigace výběru typu zprávy do rádia může být trochu neintuitivní. Preferoval bych buď výběr způsobem jak bylo implementováno v aplikaci, nebo zpětnou navigaci implementovat skrze tlačítko "Zpět" v navigační hlavičce.
    - Nahrávání by se nemělo spouštět dokud uživatel nepovolí použití mikrofonu, taktéž pokud je již dříve zamítnuté. Uživatel by měl být upozorněn, že tato funkcionalita nefunguje bez povolení přístupu k mikrofonu v nastavení.
    - Dříve vytvořená nahrávka by se neměla přidávat ke zprávě, pro kterou nebyla vytvořena. Ideálně po odeslání soubor smazat.
    - Ukládání osobních údajů je v pořádku, ale ukládání textu zprávy do rádia je asi zbytečné.
    - Zobrazení náhledu vybrané fotky by mělo mít tlačítko "Zavřít", ne všichni mohou být zvyklí používat gesta.
  • Homepage
    - Asi jsi zapomněl do projektu přidat barvy (assets), takže některým UI prvkům chybí správné barvy.
    - Uživatel by měl mít možnost vidět aktuální nastavení časovače a alarmu, také mít možnost zrušit aktuální nastavení.
    - Podobně jako u mikrofonu, uživateli by nemělo být umožněno pouze zdánlivě nastavit alarm bez požadovaného povolení notifikací. Měl by být upozorněn, že funkcionalita nebude fungovat bez autorizace.
  • Novinky
    - Stejně jako u kontaktů, preferovaný styl hlavičky je takový, jaký je u zprávy do rádia.
    - V případě nedostupného internetu/pomalého připojení by bylo dobré zobrazovat indikaci načítání dat.
    - Při načtení dat novinek a dodatečného načítání obrázků se layout novinky rozbije (viz screenshot).

Jinak dobrá práce, projekt už funguje celý na základě SwiftUI.

#7

Aktualizováno uživatelem Zdeněk Pazdera před 8 měsíc(ů)

Feedback k druhému odevzdání

  • Zpráva do rádia
    - Stejný problém s navigací jako u odevzdání z minula. Pokud není jasné jak jsem to myslel, nebo jak se to liší vůči původní implementaci, můžeme probrat osobně.
    - Pokud uživatel přiložil audio zprávu, nemělo by být povinné zadávat i textovou zprávu.
    - Délka nahrávky by měla být omezena na 30 sekund. Zdá se, že se nahrávání při překročení limitu nezastaví a pokračuje dál dokud není manuálně zastaveno.
    - Zobrazení náhledu vybrané fotky by mělo mít tlačítko "Zavřít", ne všichni mohou být zvyklí používat gesta.
    - Nahrávání zprávy koliduje s poslechem rádia a trvale ztiší rádio. Nejlepší by asi bylo přehrávání pozastavit při vytváření nahrávky.
    - Font/odsazení v hlavičce je odlišné od ostatních stránek viz příloha.
  • Homepage
    - Když nastavím časovač a chci ho rovnou přenastavit (ne nejprve zrušit), spinner na výběr se seká. Může souviset s překreslováním Menu elementu nastavení. Odpočet nutně nemusí být tak přesný, pokud by to dělalo problém, stačí když se zobrazí čas kdy doběhne.
    - Bylo by dobré zapracovat indikaci načítání rádia, případně pokud není vůbec internet k dispozici, upozornit uživatele. Aktuálně aplikace bez připojení k internetu při pokusu o spuštění přehrávání nic nedělá. (z osobní zkušenosti toto může být občas i důvod k zamítnutí uvolnění aplikace na App Store)
    - Logo metropole je nějaké malé.
    - Kvalita přenosu rádia by měla být uložená a zůstat stejná mezi vypnutím a zapnutím aplikace.
    - Nastavení alarmu zmizí z nastavení po ukončení aplikace, přestože je na pozadí aktivní.
    - Hláška ohledně nedostupné kvality je bez diakritiky v češtině a bez překladu do angličtiny. Také není jasné na první pohled co provede tlačítko "Potvrdit".
    - Aktuální program by měl mít uvedený i čas.
    - Šipka "Hrálo" má v tmavém režimu odlišnou barvu od ostatních prvků.
  • Novinky
    - Obecně už vypadá v pořádku.

Jinak aplikace není přizpůsobena "landscape" orientaci na některých stránkách na mobilech (viz screenshoty). Tato orientace není požadovaná na mobilech, pokud tedy nechceš přizpůsobovat UI, změnu orientace prosím zruš. Na tabletech se textové pole pro zprávu do rádia neroztáhne na celou šířku v landscape orientaci. Tady je to ale zdá se jediný nedostatek, takže prosím uprav a pro tablety dále podporujme všechny orientace.

#8

Aktualizováno uživatelem Zdeněk Pazdera před 8 měsíc(ů)

  • Stav změněn z Analysis in progress na In progress
  • % Hotovo změněn z 0 na 80
#9

Aktualizováno uživatelem Zdeněk Pazdera před 8 měsíc(ů)

Feedback ke třetímu odevzdání

  • Zpráva do rádia
    - Poslat zprávu do rádia by mělo být možné až po dokončení nahrávky. Aktuálně je možné kliknout na odeslat zprávu před dokončením nahrávání a způsobuje to hned několik problémů jako například předání chybného souboru e-mailovému klientovi a "zblbnutí" časovače při nové nahrávce.
    - Přehrávání rádia se správně pozastaví při spuštění nahrávání, ale ztišení rádia po vytvoření nahrávky stále přetrvává.
    - "Placeholder" v textovém poli zprávy do rádia naráží na nějaké problémy se zarovnáním (někdy je zarovnaný na střed, někdy je zbytečně ořezaný) viz screenshoty. Měl by být vždy roztáhnutý tak aby se vlezl a zarovnaný nahoře.
    - Autokorekci v poli pro e-mail, tel. číslo a jméno prosím zrušit, a pokud možno, nastavit odpovídající typ textových polí, aby je systém rozpoznával a mohl navrhovat vyplnění dle údajů uložených systémově.
  • Homepage
    - Pokud spustím přehrávání, odejdu na jinou stránku a zase se vrátím, přehrávání by se nemělo zastavovat.
    - Indikace načítání je víceméně OK, ale reaguje na načtení programu, místo zvukové stopy. Bylo by ideální, kdyby reálnému stavu přehrávání odpovídalo ovládací tlačítko přehrávání.
    - Ověř prosím zasílání notifikací ohledně budíku. Po nastavení na daný čas mi přišly najednou dvě, jedna česky a jedna anglicky. Zobrazovat by se samozřejmě měla jenom jedna v závislosti na lokalizaci. Nevím jestli s tím souvisí, ale měnil jsem v nastavení lokalizaci pro konkrétní aplikaci, pokud by se ti to nedařilo nasimulovat, tak toto můžeš zkusit.
    - Pokud vyberu rádio Skyrock s nízkou kvalitou, upozornění se ukáže správně, ale aplikace nečeká a začne přehrávat. Toto je pravděpodobně zároveň způsobeno tím, že se zdá se zprovoznilo na backendu vysílání s nízkou kvalitou u Skyrock rádia. Prověřím s kolegou jestli budeme podporovat a dodatečně dám vědět, jak toto budeme řešit.

Ostatní vypadá v pořádku, včetně podpory tabletů.

#10

Aktualizováno uživatelem Zdeněk Pazdera před 8 měsíc(ů)

Nízká kvalita přenosu u rádia Skyrock byla minulý týden zprovozněna a bude podporována.

#11

Aktualizováno uživatelem Zdeněk Pazdera před 7 měsíc(ů)

  • % Hotovo změněn z 80 na 90

Feedback ke čtvrtému odevzdání

  • Zpráva do rádia
    - Poslat zprávu do rádia by mělo být možné až po dokončení nahrávky. Aktuálně je možné kliknout na odeslat zprávu před dokončením nahrávání a způsobuje to hned několik problémů jako například předání chybného souboru e-mailovému klientovi a "zblbnutí" časovače při nové nahrávce. Už se chová lépe, ale pokud přiložím nahrávku a odešlu zprávu a následně chci poslat další, tlačítko "odeslat" funguje i bez vytvoření nahrávky nebo přiložení textové zprávy, což opět způsobuje problémy jako např. možnost poslání nedokončené nahrávky a problém s časovačem.
    - Přehrávání rádia se správně pozastaví při spuštění nahrávání, ale ztišení rádia po vytvoření nahrávky stále přetrvává. Toto stále nefunguje, podívej se prosím na dokumentaci https://developer.apple.com/documentation/avfaudio/avaudiosession/category a https://developer.apple.com/documentation/avfaudio/avaudiosession/categoryoptions. Pokud bys něčemu nerozuměl nebo měl problém to nastavit, můžeme to projít společně.

Ostatní je OK.

#12

Aktualizováno uživatelem Zdeněk Pazdera před 7 měsíc(ů)

  • % Hotovo změněn z 90 na 100

Na základě posledního testování aplikace nyní splňuje domluvené požadavky ze zadání.

Dodatečně doporučuji za účelem vylepšení kvality a stylu kódu použít nástroj SwiftLint.

#13

Aktualizováno uživatelem Zdeněk Pazdera před 26 dny(ů)

Shrnutí práce

Hlavním úkolem studenta bylo přepsat již existující mobilní aplikaci Rádií Haná, Skyrock a Metropole pro iOS z původního frameworku UIKit do novějšího frameworku SwiftUI. Student úspěšně implementoval následující stránky podle vzoru původní aplikace:

  • Kontakty do studia s odkazy na sociální sítě a mapy.
  • Možnost zaslat zprávu do rádia s přiložením zvukové nahrávky nebo obrázku.
  • Přehrávač rádia s možností výběru pořadu, kvality přenosu a zobrazením aktuálního programu.
  • Přehled novinek z rádia.

Aplikace podporuje lokalizaci pro český a anglický jazyk. Během vývoje student také reagoval na nejnovější změny v produkční verzi aplikace, což umožňuje nasazení nové verze s minimálními úpravami. Kromě toho student implementoval funkce pro automatické zastavení přehrávání po určeném čase a upozornění lokální notifikací v uživatelem stanovený čas. Aplikace je plně funkční a zdá se být bez chyb v implementaci.

Také k dispozici: Atom PDF