ANDROID

Tým vývojářů v Amarula Solutions se pohybuje ve světě Androidu po mnoho let a zná jeho historii a specifika. I proto jsme schopni poskytnout řešení pro Android systémy i Android aplikace.

Jedním z největších faktorů úspěchu je otevřenost Androidu. Velká část Android softwaru je licencovaná na Apache 2.0. Android převzal Linuxové jádro jelikož Linux je známý jeho bezpečnostními modely, správou procesů a paměti, drivery i jeho protokoly. Mezi kernelem a aplikační vrstvou vytvořil Android kompletní stack mobilniho softwaru s výhodami ze známých projektů z opensourcového ekosystému. Tento přístup umožnil Androidu rychle pokrýt celou škálu funkcí, které jsou poskytovány moderními mobilními zařízeními.

Naše portfolio úspěšných úprav platformy Android nám umožňuje adaptovat lepší strategii přímo na míru Vašim požadavkům a tím snížit náklady na vývoj a zároveň nabídnout robustní a efektivní řešení.
Ve zkratce, jsme schopni Vám pomoci s designem jak hardwaru tak softwaru, abychom zaručili, že finální řešení dokáže naplno využít veškeré výhody Androidu.

 

Příklady našich služeb
  • Vývoj specifických aplikací pro zákazníka
  • Vývoj dodatečných nativních knihoven do systému Android
  • Poradenství při vývoji hardwaru, abychom zajistili, že všechny komponenty budou fungovat s operačním systémem Android
  • Portování Androidu na nově navrhnutý hardware
  • Migrace z nechtěného OS na Android
  • Optimalizace podsystémů Android

Integrace jednotlivých komponent v rámci Androidu

Máme bohaté zkušenosti s přizpůsobením a integrací různých komponent do Androidích zařízení.

Naše dosavadní zkušenosti zahrnují práci s komponenty od prodejců z celého světa. Tyto komponenty zahrnují čtečky karet, přidané LED, rozdílné bezpečnostní elementy používané při platbách, kryptografických operacích nebo proti neoprávněnému vniknutí do zařízení.

Můžeme poskytnout celou škálu služeb od nízkoúrovňových vrstev napsaných v C/C++, přes mapování za pomocí JNI až k Java rozhraním, připraveným k využití externími Android aplikacemi. Jsme schopni zaobalit jakýkoliv protokol custom hardwarové komponenty do Androidího způsobu komunikace.
Vybíráme z více způsobů meziprocesorové komunikace, aby byly splněny všechny důležité požadavky na efektivitu, údržbu a použití.

Integrace může být prováděna skrze úplně nový interface nebo ve specifických případech může být zabalen do už existujícího Android API. Máme zkušenosti s integrací specifického NFC HW produktu do standardního Android NFC stacku zárověň s NXP a NCI implementačními balíčky.implementation packages.

Kompatibilita

Neustále sledujeme vývoj ohledně kompatibility Androidu, abychom udrželi naše systémy z dlouhodobého hlediska kompatibilní a udržovatelné. Custom API je poskytováno za pomoci přidaných sdílených knihoven, čímž zůstává oddělené od AOSP API. Testovací sada kompatibility (CTS) je součástí našich testů v QA týmu již mnoho let.

 

Testování při vývoji

Vyvíjený kód prochází unit testy a integračními testy za použití Android testovacích frameworků. Všechny změny v OS mohou být rychle otestovány, napsáním testu pro určitou část kódu, což pomáhá rychlému vývoji.

 

Android aplikace

 

Vyvíjíme Android aplikace na denní bázi od nejjednodušších aplikací pro testování specifických funkcí požadovaných našimi zákazníky, až po komplexní aplikace, které dlouhodobě udržujeme a neustále rozšiřujeme jejich funkcionalitu. Máme dlouholeté zkušenosti s používáním mnoha standardních Android funkcí, stejně jako s těmi, které se týkají pouze specifického hardwaru:

  • Skenování čárových kódu
  • Testování integrity specifických Android zařízení
  • Poskytování diagnostických funkcí
  • Integrování robotické ruky do Android aplikací pro automatické testování platebního terminálu Albert
  • Detailní NFC testování zaměřené zejména na Mifare NFC technologie
  • Čtení SD karet
  • Testování specifických funkcí modemu
  • Testování videa a zvuku

 

Zúčastnili jsme se vývoje aplikací publikovaných na Google Play:

 

Android do hloubky

Jsme tým vývojářů se zkušenostmi s Android aplikacemi, ale i s operačním systémem Android. To nám dává velkou výhodu při řešení konkrétních úkolů, abychom splnili Vaše požadavky.

 

ross-platformní aplikace

Jsme odborníci na Android ale máme zkušenosti s cross-platformními aplikacemi díky frameworkům jako jsou React native nebo Xamarin, které jsou široce využívány společnostmi jako je Facebook, pro snadnou podporu Android i iOS zařízení.

 

 

Vývoj

 
Náš proces vývoje zahrnuje celou řadu integrovaných nástrojů, který zaručuje vysokou kvalitu finálního produktu:

Code review

Každá změna kódu musí být schválena zkušenými vývojáři. Pro tyto účely používáme Gerrit, díky kterému je proces revize kódu velmi účinný. Navrhované změny jsou okamžitě viditelné našim odborníkům z několika zemí.

 

Ověřovací buildy

Každá změna kódu musí být nejdřív potvrzena Jenkins serverem. Neriskujeme žádné chyby při kompilaci po zamergeování nového kódu . Naše skripty jsou navrženy pro verifikaci jak malých aplikací, stejně tak jako velkých multi-projektů, jako je Android OS.

 

Vydávání buildů

Vydávání nových buildů se provádí pomocí Jenkins serveru. Zefektivňujeme release proces, aby byl co nejjednodušší. Naše build skripty jsou vytvořeny tak aby vydalní bylo otázkou kliknutími ve webovém rozhraní.

 

Interní sdílení znalostí

Sdílíme a rozšiřujeme naše znalosti mezi sebou každý den prostřednictvím Confluence. Všechny naše specifické znalosti jsou snadno dostupné na jednom centrálním místě všemi vývojáři. Vše je organizováno pro rychlé a snadné vyhledávání příslušných informací.

 

Úkoly

Celá naše práce je spravována v nástroji Jira, který společně s úložištěm Bitbucket poskytuje velmi efektivní organizaci úkolů. Jira je snadno přístupná pro naše zákazníky, díky čemuž můžou neustále sledovat aktuální vývoj v konkrétním projektu. Velké projekty jsou řízeny v menších sprintech. Backlog pro každý sprint je definován vždy v průběhu sprint planning meetingu.

 

Komunikace

Komunikace mezi členy týmu probíhá prostřednictvím veřejných i soukromých kanálů v nástroji Mattermost, který poskytuje efektivní způsob sdílení dočasných informací v reálném čase.