====== Revizorska citacka na Android ====== ===== Zoznam podporovanych NFC telefonov ===== Podla potreby podpory kariet MF standard je mozne vyhladat telefon v [[http://www.shopnfc.it/en/content/7-nfc-device-compatibility|zozname telefonov]]. Je potrebne aby mal telefon podporu mifare standard kariet (stlpec 'Mifare 1k'). Overenie podpory citania kariet Mifare standard je mozne na konkretnom telefone pomocou nasledujuceho [[rc_android_supported_mfc|postupu]]. ===== Uzivatelska prirucka ===== Uzivatelsky manual sa nachadza na ceste: /DokumentaciaTD/VyvojovyUsek/VyvojSW/TransFare/TransFare_Inspection/Uzivatelska prirucka.pdf ===== Instalacia aplikacie ===== Instalacia zariadenia, vytvorenie pristupu do google play privatneho kanalu, nastavenie uctov sa vykonava podla nasledovneho [[rc_android_install_setup|postupu]]. ===== Instalacia back-endu na servri ===== [[intro::revizorska_citacka::instalacia_back_end|Popis postupu instalacie]] ===== Aktualizacia back-endu na servri ===== [[intro::revizorska_citacka::aktualizacia_back_end|Popis postupu pre aktualizaciu]] ===== Pridanie zakaznik/databazy na servri (back-end) ===== [[intro::revizorska_citacka::back_end_pridanie_zakaznika|Popis postupu pre pridanie noveho zakaznika]] ===== Tvorba instalacneho balika ===== ==== Zdvihnutie aplikacnej verzie ==== Aplikacia sa z pohladu pouzivatela cisluje v 3 cislach Major.Minor.Bugfix. Major sa meni pri vyznamnych zmenach. Kombinacia Major.Minor sa pouziva na planovanie verzii v redmine taskovaci. Bugfix sa meni podla nahlasenych chyb pre konkretny planovany release verzie. Je potrebne zdvihnut verziu kodu aplikacie v build.gradle. V sekcii 'android', v podsekcii 'defaultConfig' zdvihnut versionCode a versionName: defaultConfig { applicationId "sk.sm.nfcauditor" minSdkVersion 18 targetSdkVersion 22 versionCode 23 versionName "1.20.1" } ==== Generovanie balika ==== // toto sa pravdepodobne prepracuje na kompilovanie podla kompilacneho servera jenkins // Generovanie apliacneho instalacneho balicka sa robi tak, ze v android-studiu zvolime 'Build' -> 'Generate Signed APK Wizard'. Pouzijem transdata.jks certifikat na podpis aplikacie. Transdata.jks je certifikat generovany pre TransData na podpis aplikacie. V pripade potreby mena a hesla sa obratte na spravu siete {{intro:developerconsole_generate_apk_step1.png|}} {{intro:developerconsole_generate_apk_step2.png|}} ===== Postup nasadenia novej verzie ===== Princip nasadzovania novsich aplikacii je v tom, ze sa udrzuju .php skripty na serveri, komunikujuce s TransOffice a so zariadeniami, spatne kompatibilne s jednou starsiou verziu komunikacneho protokolu. V spojeni s tym, ze je zapnuta automaticka aktualizacia aplikacie a ze sa udrziava jedna verzia pre vsetkych zakaznikov, by nemalo nastat, ze nebude zariadenie schopne komunikacie so serverom. Mozu nastat tieto pripady nutnosti update: - Update aplikacie, bez zmeny databazy a bez zmeny komunikacneho protokolu. Dojde iba k otestovaniu alfa verzie aplikacie, presunutie do beta testingu pre zakaznika. - Zmena struktury DBS na serveri, teda aj zmena .php skriptov. Dojde k otestovaniu servera a aplikacie. - Zmena struktury DBS v TransOffice, teda aj zmena DBS na serveri, zmena .php skriptov. Kompletny postup nizsie Postup nasadenia je potom nasledovny: * Dojde k otestovaniu aplikacie podla [[intro:revizorska_citacka#testovanie_verzii_aplikacie|postupu testovania aplikacie]] * Upravi sa DBS testovacieho uctu androidTariffSystem na novsiu verziu (ak sa upravuje) a porovna sa obsah s vyvojarskou testovacou DBS (doublecheck struktury) * Upravia sa DBS a .php skripty na ostrom serveri (stop appache, upload, start appache). Overi sa ich beh. * Skontroluju sa voci DBS na ostrom serveri androidTariffSystem * Updatuju sa jednotlivi dopravcovia v ich TransOffice (ak sa meni komunikacia) * Vyskusa sa manualny update dat z TransOffice na server (ak sa meni komunikacia) * Promotuje sa aplikacia z alfa do beta testingu. Po schvaleni zakaznikom do produkcnej verzie. ==== Upload aplikacie na google play developer console ==== Prihlasime sa na domenu: [[https://play.google.com/apps/publish|google play developer console]] Zvolime aplikaciu, ktoru pozadujeme nahrat: {{intro:developerconsole_application_list_small.png|}} Zvolime upload APK: {{intro:developerconsole_transfare_inspection_small.png|}} Nahrame instalacny balik a pockame par hodin :) {{intro:developerconsole_update_app_version_small.png|}} ===== Vyvojarska sekcia ===== ==== Vyvojarska dokumentacia ==== [[https://source.android.com/source/build-numbers.html|Android SDK version VS. Android OS version]] [[http://tools.android.com/tech-docs/new-build-system/version-compatibility|Android studio version VS. gradle build tool version]] ==== Vyvojarske nastroje pre graficke rozhranie ===== Na generovanie skalovatelnych a roztahovatelnych obrazkov sa pouziva pre android aplikaciu asset studio, ktory upravuje PNG subor, tak aby aplikacia vedela, ktore casti obrazku maju moznost byt roztiahnute a ktore hrany obrazku maju byt zachovane. Asset studio okrem toho, ze definuje oblasti v obrazku, ktore maju byt skalovatelne generuje aj obrazky v roznych DPI pre rozne velke obrazovky: [[https://developer.android.com/guide/practices/screens_support.html|Google vyvojarska dokumentacia pre rozne velkosti obrazoviek]] Tool na generovanie 9.png formatu: [[https://romannurik.github.io/AndroidAssetStudio/nine-patches.html|Android Asset studio]] Este netreba zabudat na optimalizaciu vekosti obrazkov pouzitych v aplikacii. Viac na [[howto:png_optimisation|tejto stranke]] ==== System zabezpecenia komunikacie zariadenia s back-end servrom ==== Revizorska citacka komunikuje s back-endom (server v telekom cloude) pomocou HTTPS 'POST' a 'GET' requestov. Prvy sposob autentifikacie ktory bol pouzity bola pomocou [[rc_android_bks|BKS]], ten uz vsak neupouzivame. Momentalne sa pouzivaju bezne verejne kluce vo forme .crt suboru, ktory je potrebne mat v instalacnom baliku (APK). Pre kazdy server s ktorym revizorska citacka komunikuje, je potrebne mat osobitny .crt subor. V pripade ze sa pridava novy, je potrebne upravit aj kod aby ho aplikacia pouzivala. Certifikaty sa nahravaju do projektu na cestu: NFCAuditor/app/src/main/res/raw ==== Vyvojove diagramy ==== Vyvojove diagramy ako usecase, class, state, component, class diagram business logik je mozne najst na tejto [[rc_android_development_diagrams|stranke]] ==== Automaticke nahlasovanie padov aplikacie pomocou crashlytics ==== **Link:** https://fabric.io/login \\ **Meno:** user@transdata.sk \\ ==== Vytvaranie aktualizacnych skriptov pre DB pomocou Navicat ==== V menu zvolime Tools->Structure Synchronization - navolime zdrojovu DB a schemu (vzorovy stav aky chceme dosiahnut) a cielovu DB a schemu (vychodzi stav, ktory upravujeme) - v //compare options// nastavime co chceme porovnavat (a z toho budu aj vytvarane SQL prikazy) - v //execution options// nastavime ake sql prikazy sa budu vytvarat (naposledy boli ponechane predvolene nastavenia, teda SQL to create/change/drop, Create inheriting parent) - spustime //Compare// tlacidlom vpravo dole Navicat nasledne zobrazi v com sa navolene db (schemy) lisia a na spodku je zoznam prislusnych SQL prikazov ako dosiahnut taky stav. Pozadovane prikazy oznacime (ctrl+lava mys), nasledne cez pravu mys (kontextove menu) zvolime moznost //copy// a skopirujeme zvolene prikazy do textoveho editora v ktorom vytvorime rozdielovy skript. ==== Vysledky kontroly ==== ValidTicket(0), InvalidCard(1), CardIsBlocked(2), CardIsBlockedOnBlackList(3), PrepaidTicketIsNotActivated(4), // not implemented in evaluation logic TicketBeforeStartValidity(5), // not implemented in evaluation logic TicketPastValidityEnd(6), ForeignPrepaidTicket(7), NotValidSpatialUnit(8), NoTicketsOnCard(11), // not implemented in evaluation logic AnotherProtectNumber(15), NotValidBusStop(16), // deprecated value, use CurrentBusStopBeforeCheckInBusStop or CurrentBusStopAfterCheckOutBusStop UnlabeledPrepaidTicket(17), // not implemented in evaluation logic NotValidLineTypeOnPrepaidTicket(18), // not implemented in evaluation logic AnotherLine(19), WithoutDiscount(20), AnotherTrip(21), CardDataMissing(22), CardIsNotSold(23), NoValidCustomerProfile(24), NotValidAnymore(25), NotValidDiscountAnymore(26), TicketWithInvalidStatus(27), CurrentBusStopBeforeCheckInBusStop(28), CurrentBusStopAfterCheckOutBusStop(29), FreeCard(30), NotAllowedCompany(31), // card company (provider number) is not in allowed companies UbianTicketNoData( 32 ), UbianTicketProcessingError( 33 ), UbianTicketTimeStampNotValid( 34 ), UbianTicketNotActivated( 35 ), UbianTicketCancelled( 36 ), UbianTicketNotFound( 37 ), UbianTicketNotValid( 38 ), UbianTicketVerifyError( 39 ); ===== Testovanie verzii aplikacie ===== Organizacia testovania aplikacie je postavena na prostriedkoch poskytovanych prostrednictvom google play. Umoznuje testovanie interne, testovanie zakaznikom, aj nasadenie do privatneho produkcneho prostredia. Interne testovanie prebieha na aplikaciach v alfa verzii. Pouzivaju sa na to testovacie ucty priradene v telefonoch: test1.transdata@gmail.com az test.transdata@gmail.com (pripadne sukromne ucty na sluzobnych telefonoch IBA zamestnancov TD). Po uspesnom dotestovani sa aplikacia presuva do beta testingu, kde je k dispozicii iba emailu beta.transdata@gmail.com (pripadne sukromne ucty IBA zamestnancov TD), ktory maju nastaveny niektore zariadenia u zakaznika. Nasledne sa presuva do produkcnej verzie, kde je k dispozicii privatnym kanalom iba pre ucet customer@transdata.sk, ktory je nakonfigurovany na beznych zariadeniach. ==== Postup pri update DBS ==== - Na vyvojarsku testovaciu databazu (phoenix) sa nahraju nove .php skripty a vykona sa test update sql servera (ak sa upravuju) - Vyskusa sa starsia aplikacia komunikujuca s novsimi skriptami (ak sa upravuju) -- //primarne pre overenie statistiky// - Vyskusa sa update starym skriptom z TransOffice (ak sa menil) - Vyskusa sa update novym skriptom z TransOffice (ak sa upravuje) - Vyskusa sa starsia aplikacia nad novou strukturou (ak sa uploadovali nove data) -- //primarne pre overenie struktury novych vstupnych dat// - Nahra sa novsia aplikacia do alfa testingu na google play - Vyskusa sa novsia aplikacia nad testovacim serverom ==== Testovacie google ucty ==== [[http://192.168.241.14/wiki/doku.php?id=google#testovacie_google_ucty|Testovacie google ucty]] ====== Telefunken revizorska citacka ====== ===== Uzivatelska prirucka ===== Existuje uzivatelsky manual so screenshotmi obrazoviek, nie je bohuzial uplne aktualny, ale celkom pouzitelny aspon pre ilustraciu. Nachadza sa na ceste: \Dokumentacia\Projekty_ISO\02_PlatobnySystem-Intel\005-RevizCitackaIPAQ\Documents\Manuals\ ===== Inicializacia zariadenia ===== Kazdy novy kus novej revizorskej (m3) treba najprv inicializovat - inicializacia robi dve podstaten veci - instaluje command line (lebo windows mobile 6 ho uz by default nema) a tiez uklada na zariadenie jeho 'seriove cislo'. Vsetko potrebne pre inicializaciu je na mamute/kronose/hadese: \Dokumentacia\Projekty_ISO\02_PlatobnySystem-Intel\005-RevizCitackaIPAQ\InitRC\Inicialize\ Davam do pozornosti ReadMe.txt ==== Ako nastavit datovu SIMku na zariadeni ==== \Dokumentacia\Projekty_ISO\02_PlatobnySystem-Intel\005-RevizCitackaIPAQ\Documents\InternetSettings\ ==== Ako zapnut logy na revizorskej citacke ==== - logy sa osobitne zapinaju pre aplikaciu a pre platobny. * pre aplikaciu sa zapinaju v Settings.xml resp SettingsM3.xml (je dobre si uvedomit, ze Settingy sa prehravaju spolu s datami pri kazdom vlozeni zariadenia do kolisky, takze ich treba modifikovat na serveri, nie na zariadeni, inak uprava nebude mat dlhe trvanie) LogMode="1" * pre plaotbny sa zapinaju v PTConfigu ako LogType="0xFFFFFFFF"