Aplikace pro Android k Intranetu GVP.
- OS: Android 5.0+
- Jazyk: Kotlin
- Autor: František Hlinka
Aplikaci jsem vytvořil jako svůj maturitní projekt z programování, ale protože by někomu mohla ještě být třeba užitečná, udělal ji open-source, takže kdyby kdokoli chtěl aplikaci používat nebo i příspívat, klidně může 😉
Cílem projektu je vytvořit aplikaci pro mobilní operační systém Android, ve které si uživatel bude moci číst články a aktuality z Intranetu školy.
Články bude možné zobrazovat, komentovat a vytvářet. Aktuality bude možné zobrazovat a přidávat.
V aplikaci se snažím používat nejnovější (k r. 2019) architektury, paradigmata a knihovny napsané či používané lídry v oboru, například samotným Googlem. Zmíním například Dagger2
pro Dependency Injection, Android Architecture Components
z nástrojů Android Jetpack
pro implementaci architektury MVVM
(Model, View, ViewModel), Room
database pro správu databází, Retrofit
pro práci se sítí.
Zároveň by aplikace měla nějak vypadat, a tak se pokusím následovat Material Design Guidelines (https://material.io/) a zároveň přidat trochu svého vlastního grafického nadšení.
Jako backend pro aplikaci budou sloužit jednoduché PHP skripty, které budou umístěné na serveru školy a převedou data z databáze do JSON formátu. Backend je zde v repu gvp-intranet-app-backend.
Aplikaci lze stáhnout:
-
Jednoduše z obchodu Google Play,
-
nebo zde v záložce releases, u každé verze v sekci
assets
je souborAPK
pro danou verzi.APK
soubor je potřeba přesunout do zařízení s Androidem a nainstalovat. Je potřeba mít v nastavení zařízení povolenou instalaci z neověřených zdrojů.
Projekt je možné otevřít například v Android Studio nebo v Eclipse.
Kód backendu je v samostatném repu: gvp-intranet-app-backend.
Copyright 2019 František Hlinka
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Licence pro využité knihovny třetích stran jsou uvedeny v souboru licences.txt.
Optimalizováno, kdy se načítají data (při otevření detailu článku a návratu zpět na seznam článků teď seznam neskáče vždy nepohodlně na vrch, jako tomu bylo předtím). Opravy chyb. Plovoucí tlačítko pro přidávání příspěvků teď nepřekáží, ale samo se schovává a objevuje při posouvání obsahu. Přidáno pár odkazů v nastavení. Přidána rychlá zkratka pro otevření Intranetu v prohlížeči.
Oprava chyby v algoritmu pro zobrazování obsahu článku, která způsobovala nesprávné zobrazování textu - bez všeho formátování.
První open-source public release na Githubu.
Initial commit na github. Doplněna dokumentace kódu.
Opravena chyba v zobrazování obrázků, přidána sekce o aplikaci a s ní informace o licencích.
Přidáno zobrazování obrázků, dokončeny komentáře, přidávání dat. První release verze.
Přidána možnost přidávání komentářů; přidáno nastavení; v backendu dodělány php skripty pro přidávání dat; vylepšení zobrazení komentářů
Přidáno: Paging článků (jde scrollovat nekonečně a vidět všechny články ze serveru); Základní funkcionalita komentářů, ale zatím to graficky nevypadá hezky. Opraveno: Aktualizace dat; Horizontální scrollování autora a data u článků TODO: vylepšit komentáře a přidat možnost vytváření komentářů; zajistit aby se RecyclerView neobnovoval po každém resume fragmentu; přidat možnost pull-to-refresh všude
Základní funkce fungují, články a aktuality se stahují a ukládají do databáze, použito MVVM, DI, Retrofit. TODO: Data paging, komentáře ke článkům, přidávání článků a aktualit
Zatím vůbec nefunguje, padá při startu, ale pracuju na tom. Nechtěl jsem to odfláknout a učím se na tom nové věci (dependency injection, MVVP architecture), kterým ještě moc nerozumím, proto zatím nic. Ale už je tam aspoň základní struktura tříd aplikace. Až to půjde tak sem hodím update.