<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[AppCorner Blog]]></title><description><![CDATA[AppCorner - Mobil és webes applikáció fejlesztés]]></description><link>https://blog.appcorner.eu/</link><image><url>https://blog.appcorner.eu/favicon.png</url><title>AppCorner Blog</title><link>https://blog.appcorner.eu/</link></image><generator>Ghost 3.15</generator><lastBuildDate>Tue, 29 Dec 2020 14:15:32 GMT</lastBuildDate><atom:link href="https://blog.appcorner.eu/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[FiveUP alkalmazás továbbfejlesztése]]></title><description><![CDATA[A FiveUP egy általános iskolások számára készült tanulást segítő alkalmazás. Csapatunkat kérték fel a meglévő kódbázis átvilágítására, a kritikus hibák javítására, valamint az alkalmazás kiadásához szükséges legfontosabb fejlesztések elvégzésére.]]></description><link>https://blog.appcorner.eu/2020/10/27/fiveup-alkalmazas-tovabbfejlesztese/</link><guid isPermaLink="false">5ecbd94dc118980001aab409</guid><category><![CDATA[Munkáink]]></category><dc:creator><![CDATA[AppCorner]]></dc:creator><pubDate>Tue, 27 Oct 2020 11:05:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/07/fiveup-2.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: html--><div class="ac-work-infocard">
	<div class="partner">Partner: AppIdeas Kft.</div>
	<div class="timeframe">Fejlesztés ideje: 2019-2020</div>
</div><!--kg-card-end: html--><img src="https://blog.appcorner.eu/content/images/2020/07/fiveup-2.png" alt="FiveUP alkalmazás továbbfejlesztése"><p>A <a href="https://fiveup.hu/">FiveUP</a> egy modern, okostelefonokra fejlesztett alkalmazás, melynek segítségével az általános iskolás diákok rövid idő alatt, izgalmas gamifikált univerzumban, tantárgyakra, témakörökre bontva sajátíthatják el a tanagyagot. Az alkalmazásban jelenleg 5 tantárgy és több, mint 15000 megoldandó feladat várja az ötödik, hetedik és nyolcadik osztályos tanulókat.</p><figure class="kg-card kg-image-card"><img src="https://blog.appcorner.eu/content/images/2020/10/fiveup.png" class="kg-image" alt="FiveUP alkalmazás továbbfejlesztése"></figure><p>Az applikáción a projekt 2017-es indulása óta több szabadúszó fejlesztő is dolgozott, a fejlesztés agilis módon zajlott. Az alkalmazás tulajdonosai tavaly év végén, az éles indulás előtt keresték fel csapatunkat, feladatunk a meglévő kódbázis átvilágítása, a kritikus hibák javítása, valamint az alkalmazás kiadásához szükséges legfontosabb fejlesztések elvégzése volt.</p><h3 id="kezdeti-l-p-sek">Kezdeti lépések</h3><p>Az app átvizsgálása egy kéthetes sprint keretében zajlott, amely során az ügyféllel folyamatosan egyeztetve felmértük a kódbázis állapotát, majd javítottuk a legfontosabb hibákat és hiányosságokat, amelyek az app stabilitását veszélyeztetnék. Ezidő alatt felkészítettük továbbá az alkalmazást az újabb Android rendszerek támogatására, valamint automatizáltuk a Google Play Áruházba történő feltöltés folyamatát. Integrálásra került belső crash reporting eszközünk is, hogy a zártkörű tesztek során információt nyerjünk az app stabilitásáról, és még azelőtt javíthassuk a felmerülő hibákat, hogy azok az éles környezetben jelentkeznének.</p><p>A nagyobb módosításokat igénylő, főként tervezésbeli problémák javítására ebben a fázisban csak időbecsléseket készítettünk, így hosszas és költséges fejlesztés helyett az ügyfél érdekeit maximálisan szem előtt tartva a hiányzó funkciók befejezésére, és az alkalmazás mielőbbi kiadására koncentráltunk. Ez lehetővé tette az alkalmazás éles környezetben történő validálását és a felhasználói visszajelzések gyűjtését, amely amellett, hogy segíti ügyfelünket az üzleti döntések meghozásában, megkönnyítheti a befektetők bevonását is. A kódbázis állapotának javítása a későbbi továbbfejlesztések részeként, kis lépésekben valósulhat meg.</p><h3 id="folyamatos-fejleszt-s">Folyamatos fejlesztés</h3><p>Az átvilágítás és a legfontosabb problémák javítása után az ügyféllel és az alkalmazást kiszolgáló backend fejlesztőjével szorosan együttműködve végeztük el a fennmaradó funkciók fejlesztését, melynek eredményeként idén év elején publikusan is elérhetővé vált az alkalmazás a <a href="https://play.google.com/store/apps/details?id=com.fiveup.fiveupapplication&amp;hl=en">Google Play Áruházban</a>.</p><p>A fejlesztés azonban ezzel nem állt meg: a FiveUP csapata folyamatosan figyeli a visszajelzéseket, és figyelembe veszi azokat a fejlesztések során, a minél jobb felhasználói élmény érdekében. Ennek egyik lépcsőjeként idén ősszel az alkalmazás előfizetéses modellre állt át, így a tanulást most már nem szakítják meg reklámok sem.</p><p>A FiveUP alkalmazást a Google Play Áruházból ezidáig több, mint kétezren töltötték le. A csapat elsődleges célja a közeljövőben a teljes felső tagozat lefedése a hiányzó tantárgyakkal.</p>]]></content:encoded></item><item><title><![CDATA[Elindult a tervezeg.hu]]></title><description><![CDATA[A mai napon elindult a tervezeg.hu, Zalaegerszeg és vonzáskörzetének közös webes utastájékoztató felülete. Csapatunk végezte a szolgáltatás létrehozásához szükséges szoftverfejlesztési munkákat, beleértve a reszponzív webalkalmazás fejlesztését, a menetrendi háttérrendszer...]]></description><link>https://blog.appcorner.eu/2020/10/19/elindult-a-tervezeg-hu/</link><guid isPermaLink="false">5f8625cd8e905a00018341d7</guid><category><![CDATA[Munkáink]]></category><category><![CDATA[Menetrend]]></category><category><![CDATA[Okos város]]></category><dc:creator><![CDATA[Tamás Szincsák]]></dc:creator><pubDate>Mon, 19 Oct 2020 16:40:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/10/tervezeg.hu_-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/10/tervezeg.hu_-1.png" alt="Elindult a tervezeg.hu"><p>A mai napon elindult a <a href="https://tervezeg.hu/">tervezeg.hu</a>, Zalaegerszeg és vonzáskörzetének közös webes utastájékoztató felülete.</p><p>A fejlesztés Zalaegerszeg Önkormányzatának megbízásából, a <a href="https://www.facebook.com/shareplaceinterreg/">Shareplace</a> projekt keretében valósult meg. Csapatunk végezte a szolgáltatás létrehozásához szükséges szoftverfejlesztési munkákat, beleértve a reszponzív webalkalmazás fejlesztését, a menetrendi háttérrendszer fejlesztését, a szolgáltatóktól érkező menetrendi adatok feldolgozását, valamint a fejlesztéssel kapcsolatos projekt management, tervezési, UI/UX, tesztelési és üzemeltetési munkálatokat is. A fejlesztés során szorosan együttműködtünk az Önkormányzat, a <a href="https://mobilissimus.hu/">Mobilissimus</a> és a <a href="https://volanbusz.hu/">Volánbusz</a> szakembereivel.</p><p>A tervezeg.hu legfőbb előnye a korábbi megoldásokkal szemben, hogy <strong>közös felületen jeleníti meg a városban elérhető szolgáltatók menetrendjeit</strong>. A Volánbusz helyi autóbusz-menetrendjei és a MÁV helyközi vasúti menetrendjei mellett integrálásra kerültek a Zalaegerszeg területén közlekedő igényvezért buszjárat, a <a href="https://zergebusz.hu/">Zergebusz</a> menetrendjei is, így közvetlenül innen is elindítható az utazásra jelentkezés folyamata. Jövőbeni cél, hogy a rendszer a helyközi autóbusz-menetrendekkel is bővüljön.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://blog.appcorner.eu/content/images/2020/10/tervezeg.hu_.png" class="kg-image" alt="Elindult a tervezeg.hu"><figcaption>Közös felületen láthatóak a Volánbusz helyi menetrendjei (világoskék), a MÁV vasút menetrendjei (sötétkék), valamint a Zergebusz igényvezért járatainak megállói (zöld).</figcaption></figure><p>Jelen fejlesztés célja egy minimalista felület létrehozása volt, amely könnyen átlátható, mégis tartalmazza a tájékozódáshoz szükséges alapvető funkciókat: megállók keresése (térképen, név szerint, vagy az aktuális pozíciónk alapján), indulási idők megtekintése, valamint egy adott járat útvonalának áttekintése. Kiemelt figyelmet szenteltünk a mobileszközök támogatására, hisz az okostelefonokról indított látogatások száma mára már <a href="https://gs.statcounter.com/platform-market-share/desktop-mobile-tablet">meghaladja</a> az asztali számítógépekről érkezőkét.</p><p>A fejlesztés során csapatunk az alábbi feladatok látta el:</p><!--kg-card-begin: markdown--><ul>
<li>Reszponzív webes felület fejlesztése, amely asztali számítógépeken és mobiltelefonokon egyaránt jól használható.</li>
<li>Menetrendi háttérrendszer létrehozása az iparágban széles körben ismert nyílt forrású szoftverek segítségével.</li>
<li><a href="https://www.openstreetmap.org/">OpenStreetMap</a> alapú vektoros térkép biztosítása a webes felület számára.</li>
<li>Adatkapcsolat kiépítése a közlekedési szolgáltatók (Volánbusz, MÁV) irányába a menetrendek folyamatos frissítése érdekében.</li>
<li>A szolgáltatóktól érkező heterogén adatforrások szabványos formátumra történő alakítása (<a href="https://developers.google.com/transit/gtfs">GTFS</a>), az adatok tisztítása, a különböző szolgáltatóktól érkező adatok összekapcsolása, valamint a felmerülő adathibák javítása.</li>
<li>Üzemeltetés és 24/7 monitorozás saját infrastruktúránkon a megbízható működés érdekében.</li>
</ul>
<!--kg-card-end: markdown--><p>A menetrendi adatok feldolgozásához a <a href="https://menetrend.app/">menetrend.app</a> mögötti háttérrendszereket vettük igénybe, amely lehetővé tette számunkra, hogy a szolgáltatóktól érkező különféle formátumú menetrendi adatokat hatékonyan feldolgozzuk, azokat egységes formára hozzuk, majd az online utastájékoztató felületet kiszolgáló háttérrendszereknek átadjuk. Kiemelt célunk volt, hogy ezen munkálatok minél nagyobb része az iparágban elterjedt szabványos megoldásokra építve történjen, ezzel növelve a szolgáltatás megbízhatóságát, és segítve az átjárást a különféle rendszerek között. A menetrend alkalmazásunk mögötti rendszerek ezidáig az ország 7 nagyvárosában, több, mint 275 000 aktív felhasználóval bizonyítottak, és reményeink szerint biztos alapként szolgálnak majd a tervezeg.hu közönsége számára is.</p>]]></content:encoded></item><item><title><![CDATA[menetrend.app együtt­működés Nyíregyházán]]></title><description><![CDATA[Augusztus 20-tól új menetrend került bevezetésre Nyíregyházán, melynek során csatapunk együttműködött a helyi önkormányzattal, valamint a Mobilissimus szakembereivel, hogy az utazóközönség online tájékoztatása zökkenőmentes legyen.]]></description><link>https://blog.appcorner.eu/2020/08/25/nyiregyhazi-menetrend-onkormanyzat-egyeuttmukodes/</link><guid isPermaLink="false">5f38668381a2590001734479</guid><category><![CDATA[Menetrend]]></category><dc:creator><![CDATA[Tamás Szincsák]]></dc:creator><pubDate>Tue, 25 Aug 2020 16:35:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/08/nyiregyhaza-blogpost-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/08/nyiregyhaza-blogpost-1.png" alt="menetrend.app együtt­működés Nyíregyházán"><p>2020. augusztus 20-tól <a href="https://www.nyiregyhaza.hu/post/uj-buszmenetrend-csutortoktol-kevesebb-atszallas-uj-kapcsolatok-a-varosreszek-kozott-2020-08-17">új menetrend</a> került bevezetésre Nyíregyházán, melynek során jelentősen megváltozott a helyi autóbuszjáratok közlekedése: új járatok indultak, mások összekötésre kerültek, valamint sok járaton ütemes menetrend került bevezetésre, összességében jobb eljutási időket és kevesebb átszállást eredményezve. Az új menetrend bevezetését hosszas előkészítő munka előzte meg, melynek fontos eleme volt az utasok tájékoztatása a változásokról.</p><p>Csatapunk tavasz óta együttműködött <a href="https://www.nyiregyhaza.hu/">Nyíregyháza Önkormányzatával</a>, valamint az új menetrendi hálózatot tervező <a href="https://mobilissimus.hu/">Mobilissimus</a> szakembereivel, hogy az utazóközönség online tájékoztatása zökkenőmentes legyen, és az utasok minél szélesebb körben megismerhessék a változásokat.</p><p>Ezen együttműködés részeként <a href="https://menetrend.app/">menetrend alkalmazásunk</a> nyíregyházi változatában április vége óta már a hivatalos, első kézből származó menetrendi információk jelennek meg, amelyek a jövőbeni változások esetén is folyamatosan és időben frissülnek. A megjelenített menetrendek így már pontosan egyeznek a megállókba kihelyezésre került menetrendi hirdetményekkel, amelynek köszönhetően jelentősen csökkent a panaszok száma, és nőtt a felhasználók elégedettsége. A változásokról a felhasználók minden alkalommal egy rövid összefoglalót kapnak, ezzel is segítve a tájékozódást és az új hálózat minél gyorsabb megismerését.</p><p>Az első ideiglenes menetrend május elején történő bevezetése óta az autóbuszjáratok menetrendje többször is finomhangolásra került, melyet végül augusztus 20-án az új, átdolgozott menetrend bevezetése követett. A változásokat minden alkalommal nagy érdeklődés övezte, amely az online felületeken leginkább az interakciók számában jelent meg.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.appcorner.eu/content/images/2020/08/Screenshot-2020-08-24-at-12.42.23.png" class="kg-image" alt="menetrend.app együtt­működés Nyíregyházán"><figcaption>Képernyő-megtekintések az augusztus 20-i menetrendváltás előtt és alatt</figcaption></figure><p>Alkalmazásunk a megállókban is megtalálható menetrendi táblázatok megjelenítése mellett természetesen sok más funkciót is nyújt, amely az utasok kényelmét szolgálja: ilyen funkció például az utazástervezés tömegközlekedéssel, gyalogosan és <a href="https://blog.appcorner.eu/2018/04/17/gyalogos-es-kerekparos-utazastervezes-menetrend-alkalmazasainkban/">kerékpárral</a>, az interaktív térkép, a címekre és helyekre történő keresés, valamint a kifinomult kedvencelés és testreszabhatóság is.</p><h3 id="hetedik-ve-jelen-a-v-rosban">Hetedik éve jelen a városban</h3><p>Menetrend alkalmazásunk 2013 nyara óta érhető el Nyíregyházán, ez idő alatt több, mint 30 ezren próbálták ki az alkalmazást. Az indulása óta az alkalmazásban megjelenő menetrendi adatokat a <a href="https://www.facebook.com/derkehu/">DERKE - Debreceni Regionális Közlekedési Egyesület</a> állította össze, és tartotta karban, akik közreműködését ezúton is köszönjük.</p><p>A mostani együttműködés nagyban hozzájárul ahhoz, hogy menetrend alkalmazásunk a jövőben is minél pontosabb tájékoztatást nyújthasson a felhasználók számára.</p>]]></content:encoded></item><item><title><![CDATA[Miért olyan fontos a digitális jelenlét egy vállalkozás számára?]]></title><description><![CDATA[Napjainkban a digitális forradalom számos, korábban elképzelhetetlen lehetősséggel kecsegtet. De mi történik, ha nem veszünk róla tudomást? Megtehetjük egyáltalán?]]></description><link>https://blog.appcorner.eu/2020/06/22/miert-olyan-fontos-a-digitalis-jelenlet-egy-vallalkozas-szamara/</link><guid isPermaLink="false">5ef0c54e0a0fc70001a42959</guid><category><![CDATA[Digitalizáció]]></category><category><![CDATA[Üzlet]]></category><dc:creator><![CDATA[János Zoltán Kovács]]></dc:creator><pubDate>Mon, 22 Jun 2020 16:26:57 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/06/736.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/06/736.jpg" alt="Miért olyan fontos a digitális jelenlét egy vállalkozás számára?"><p>Aki most a 40-es éveit éli, az nagy valószínűséggel már tinédzser korában megismerkedett a számítógéppel, fiatal felnőttként rendszeres internetfelhasználóvá vált és az elmúlt 10 évét különböző közösségi oldalakon töltötte. A 30-asok már általános iskolában találkoztak az internettel, középiskolai éveikre jelentős hatással voltak az akkoriban feltörekvőben lévő közösségi platformok. Az utánuk következő generációk pedig egy új, digitális korba születtek bele, számukra ezek a dolgok már az élet velejárói. Nem nehéz levonni a következtetést, a fent említett generációk egyre nagyobb vásárlóerővel bírnak, egyre többen lépnek be közülük a munkaerőpiacra, kerülnek vállalatoknál döntéshozó pozícióba, ami jelentős piaci hatással bír. Számukra természetes, hogy egy vállalkozás termékeiről vagy szolgáltatásairól digitálisan is tájékozódhatnak, hogy a mindennapi munkafolyamatokban hatékony, könnyen használó szoftverek támogatják őket.</p><p>A digitalizációnak - a számos vélt vagy valós negatív hatása mellett - van egy hatalmas előnye: nagyságrendekkel gyorsabbá, egyszerűbbé és költséghatékonyabbá tud tenni jónéhány hétköznapi tevékenységet. Nem véletlen, hogy egyre jobban elterjed a magánszektortól kezdve a közigazgatáson át szinte minden területen. A kulcs a „nagyságrendekkel” szó. A digitalizáció teljesen megváltoztatja a világot, a vállalatok pedig egész egyszerűen nem engedhetik meg maguknak, hogy ne alkalmazkodjanak hozzá.</p><p>Manapság hajlamosak vagyunk mindenre az innováció kifejezést használni, azonban a valódi innovációnak van egy árnyoldala: ha nagyságrendi változásról beszélünk, az számos addig nyereséges, ám a változó körülményekhez alkalmazkodni képtelen vállalkozást tehet rövid időn belül veszteségessé. Egy gyakran említett példa erre a „jégipar” esete.</p><p>Az 1880-as évek elején az Egyesült Államok északkeleti részén egy új ipari szegmens volt feltörekvőben, a jégbányászat. A koncepció egyszerű volt: a hidegebb régiókban bányászott jeget a lehető leggyorsabban és leghatékonyabban szállították a melegebb régiókba, ahol így elérhetővé vált az élelmiszerek tartósítására való felhasználása. 1886-ra emberek ezrei dolgoztak az ágazatban, évi mintegy 25 millió tonna jeget megmozgatva. Jelentős fejlesztések történtek a hatékonyabb bányászat, a jobb hőszigetelés és a logisztikai műveletek optimálissá tétele érdekében.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.appcorner.eu/content/images/2020/06/Girls_deliver_ice._Heavy_work_that_formerly_belonged_to_men_only_is_being_done_by_girls._The_ice_girls_are_delivering..._-_NARA_-_533758.jpg" class="kg-image" alt="Miért olyan fontos a digitális jelenlét egy vállalkozás számára?"><figcaption>Jeget szállító nők az első világháború idején</figcaption></figure><p>1870-ben Carl von Linde publikálta kutatási eredményeit, ami néhány éven belül az első stabil, ipari méretű hűtőgép létrejöttéhez vezetett. A jeget így már nem kellett hideg területekről szállítani, helyben is lehetett gyártani. A piac átalakult. Bár a két ágazat egy ideig párhuzamosan fejlődött, a jégbányászat előbb utóbb teljesen eltűnt. A dolog árnyoldala, hogy a legtöbb bányász vállalat nem az új technológiához való alkalmazkodás útját választotta, hanem a végsőkig kitartott a bányászat mellett. Többségük - bár puszta méretéből adódóan egy ideig még képes volt talpon maradni - végül csődbement.</p><p>A napjainkban zajló digitális innováció hasonló kihívások elé állítja a modern vállalkozásokat. Vagy reagálnak a változó piaci környezetre, a módosult vásárlói igényekre, vagy előbb-utóbb piacot veszítenek. Helyüket betöltik azok, akik képesek kiszolgálni ezeket az új igényeket. Magyarországon, főleg a KKV szektorban <a href="https://www.vg.hu/vallalatok/infokommunikacio/jelentos-lemaradasban-a-kkv-k-digitalizacioja-2316168/">jelentős lemaradás tapasztalható a digitalizáció terén</a>. Sok kis vállalkozás ennek köszönhetően komolyabb digitális jelenlét nélkül is képes még boldogulni. A nemzetközi trendek alapján viszont egyértelmű, hogy a helyzet hamarosan változni fog.</p>]]></content:encoded></item><item><title><![CDATA[Deno - első benyomások]]></title><description><![CDATA[Különféle webes projektjeink során gyakran használunk Node.js-t, így érdeklődve szemléltük a Deno körül kialakuló ökoszisztémát. Az alábbiakban röviden összefoglaljuk első tapasztalatainkat és a legfőbb különbségeket a Node-hoz képest.]]></description><link>https://blog.appcorner.eu/2020/05/25/deno-elso-benyomasok/</link><guid isPermaLink="false">5ec7fe90426cf4000164cc17</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[Tamás Szincsák]]></dc:creator><pubDate>Mon, 25 May 2020 11:11:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/Screenshot-2020-05-23-at-13.10.39-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/Screenshot-2020-05-23-at-13.10.39-1.png" alt="Deno - első benyomások"><p>Különféle webes projektjeink során gyakran használunk Node.js-t, elsősorban nagy terhelésre tervezett microservicek, valamint CLI eszközök és ütemezett feladatok futtatására. Legfontosabb előnye számunkra, hogy más megoldásokhoz (pl. Ruby on Rails) képest jobban optimalizált, a leggyakoribb feladatokra pedig 3rd party programkönyvtárak széles tárháza áll a fejlesztők rendelkezésére.</p><p>Az előnyök mellett azonban több olyan nehézséggel is rendszeresen találkozunk, amelyek megnehezítik a fejlesztést: a beépített Typescript támogatás hiánya, az elavult, callback alapú API, valamint a natív addonok fejlesztésének körülményessége, melyre különösen a legacy C/C++ projektekkel történő együttműködés során lenne szükség.</p><p>Érdeklődve szemléltük tehát Ryan Dahl, a Node.js ötletgazdájának előadását, melyben személyes véleményét osztotta meg a közönséggel a Node.js jelenlegi állapotáról, valamint bejelentette a Deno fejlesztését, amellyel a legfontosabb hiányosságokat kívánja orvosolni. Mostanra hihetetlen módon felkapta a fejlesztői közösség a Deno-t, néhány nappal az 1.0-ás verzió megjelenése után a hivatalos <a href="https://github.com/denoland/deno">GitHub repó</a> már negyvenezer csillagozás fölött jár (összehasonlításként a <a href="https://github.com/nodejs/node">Node</a> nemrég lépte át a hetvenezret).</p><figure class="kg-card kg-embed-card"><iframe width="612" height="344" src="https://www.youtube.com/embed/M3BM9TB-8yA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><h2 id="legf-bb-elt-r-sek-a-node-hoz-k-pest">Legfőbb eltérések a Node-hoz képest</h2><!--kg-card-begin: markdown--><p>TLDW: Ryan az előadásában legfőként az alábbi hátrányokat emelte ki:</p>
<ul>
<li><strong>Callback alapú API</strong>, amely az async/await terjedésével egyre esetlenebbé teszi a beépített Node API-k használatát.</li>
<li><strong>Biztonság</strong>, azaz a jogosultságkezelés teljes hiánya – egy Node.js alkalmazás (és vele együtt a használt 3rd party libraryk is) gyakorlatilag bármit megtehet, amihez a futtató felhaszálónak jogosultsága van.</li>
<li><strong>package.json</strong> használata és az npm integrálása.</li>
<li><strong>node_modules</strong>, avagy a legnehezebb objektum az univerzumban (<em>megj.: bár különféle eszközökkel, mint pl. <a href="https://github.com/ModClean/modclean">modclean</a>, <a href="https://github.com/tj/node-prune">node-prune</a> kordában tartható</em>)</li>
<li><strong>node-gyp</strong>, azaz a V8 eredeti build rendszere, amely gyakran okoz fejfájást a natív addonok fejlesztőinek.</li>
</ul>
<!--kg-card-end: markdown--><p>A Deno főként a fentiekre kíván megoldást nyújtani, de ezen kívül más, kisebb eltéréseket is találhatunk. Lássuk, melyek ezek.</p><h2 id="els-benyom-sok">Első benyomások</h2><p>Ami <a href="https://deno.land/#installation">telepítés</a> után rögtön feltűnik, hogy egyetlen, kb. 40 megás binárisként érkezik, amely portable alkalmazásoknál kifejezetten jól jöhet, de a Docker képfájlok létrehozását is egyszerűsítheti.</p><p>A Deno beépített TypeScript támogatással rendelkezik, így nincs szükség sem third party megoldások használatára (<a href="https://github.com/TypeStrong/ts-node">ts-node</a>, <a href="https://github.com/babel/babel">babel</a>), sem speciális konfigurációra. Emellett természetesen a natúr JavaScript is használható, vagy akár vegyíthető is a két megoldás egy alkalmazáson belül.</p><!--kg-card-begin: markdown--><p>A külső függőségek importálása a böngészőkben megszokott módon, URL-ek segítségével történik. A gyakorlatban így akár egyetlen állományból, pl. egy külső CDN-en tárolt, minifikált JS modulból is behúzható egy függőség, amennyiben az megfelel az ES modulok követelményeinek. A modulokat nem szükséges külön telepíteni, azok az app első futtatásakor automatikusan letöltődnek, és egy központi tárolóba kerülnek. Ennek pontos helyét a <code>deno info</code> parancs segítségével nézhetjük meg:</p>
<pre><code class="language-bash">$ deno info
DENO_DIR location: &quot;/Users/tamas/Library/Caches/deno&quot;
Remote modules cache: &quot;/Users/tamas/Library/Caches/deno/deps&quot;
TypeScript compiler cache: &quot;/Users/tamas/Library/Caches/deno/gen&quot;
</code></pre>
<p>Ezzel jelentős helyet takaríthatunk meg a Node.js megoldásához képest, egyrészt mert a több projektekben is használt függőségek csak egyszer foglalnak helyet, másrészt mert itt ténylegesen csak a szükséges JS fájlok kerülnek letöltésre – szemben a node-dal, ahol az egyes modulok rengeteg &quot;ott felejtett&quot; állományt is tartalmaznak. A gyakorlatban jelenleg sajnos problémát jelent a már nem használt modulok törlése, erre később várható <a href="https://github.com/denoland/deno/issues/2297">hivatalos megoldás</a>.</p>
<!--kg-card-end: markdown--><p>Mivel az egyes modulok bárhonnan letölthetőek, nincs szükség sem központi package manager-re, sem központi package repository-ra. A 3rd party modulok könnyebb megtalálhatósága érdekében ugyan a Deno hivatalos oldalán üzemel egy <a href="https://deno.land/x">repository</a>, ez inkább egy linkgyűjtemény, használata nem kötelező. A szabadságnak azonban ára van: míg egy központi repóból viszonylag ritkán törlődnek modulok (ha mégis, az kellemetlen napokat okozhat a fejlesztőknek, lásd a <a href="https://www.theregister.com/2016/03/23/npm_left_pad_chaos/">left-pad esetét</a>), addig egy random weboldalon tárolt függőség bármikor nyom nélkül eltűnhet, vagy lecserélődhet egy kártékony kódot tartalmazó változatra. A későbbiekben production alkalmazások esetén különösen fontos lesz a megbízható CDN-ek, vagy akár belső mirrorok használata.</p><!--kg-card-begin: markdown--><p>Rögtön a <a href="https://deno.land/std">Deno standard library</a> kipróbálása során feltűnik a jogosultságkezelés jelenléte: a potenciálisan veszélyes műveleteket, mint pl. internet hozzáférés, fájl I/O, vagy a környezeti változók olvasása külön engedélyezni kell a futtatandó alkalmazás számára a megfelelő kapcsolókkal (<code>--allow-net</code>, <code>--allow-env</code>, <code>--allow-read</code>, stb). Manapság egyre több támadásról hallani népszerű modulok ellen, így ez mindenképp hasznos adalék a fejlesztői környezet védelme érdekében. Éles rendszerek esetében is csökkenti egy esetleges támadás hatását, de önmagában nem helyettesíti a külső függőségek auditálását, valamint az egyes alkalmazások megfelelő izolációját.</p>
<!--kg-card-end: markdown--><p>Az IDE támogatás terén is meglepően jó a helyzet: több népszerű plugin-t is találtunk a Visual Studio Code-hoz, melyek a néhány napos kísérletezés során többnyire megfelelően működtek.</p><h2 id="docker-build-s-haszn-lat-les-k-rnyezetben">Docker build és használat éles környezetben</h2><p>A single binary megoldásnak, valamint a package manager hiányának köszönhetően az alkalmazások dockerizálása meglepően egyszerű. Habár hivatalos Docker image egyelőre <a href="https://github.com/denoland/deno/issues/3356">még nem készült</a>, a közösség több projektet is fenntart a hiány pótlására. A tesztelés során a választásunk a <a href="https://github.com/hayd/deno-docker">hayd/deno-docker</a> projektre esett, azon belül pedig az Alpine Linux alapú képfájlra, annak kis mérete miatt.</p><!--kg-card-begin: markdown--><p>Habár első ránézésre elegendőnek tűnhet csak az app forrását becsomagolni, a külső függőségek letöltését pedig futás közben a Deno-ra bízni, a gyakorlatban mégis célszerű a függőségeket már a build során letölteni és a képfájlba csomagolni. Ennek számos előnye van:</p>
<ul>
<li>Az esetleges problémák, szinkatikai hibák már a build során kiderülnek.</li>
<li>Stabil docker képfájlt kapunk, azaz később elindítva is garantáltan ugyan azokat a verziókat használja.</li>
<li>Lehetőségünk van a letöltött modulok átvizsgálására automatizált eszközökkel.</li>
<li>Az alkalmazás indítása és újraindítása gyorsabbá válik.</li>
<li>Kevésbé lesz érzékeny az átmeneti hálózati problémákra, ha azok az alkalmazás indulása vagy újraindulása során jelentkeznének.</li>
</ul>
<p>A függőségek letöltésére a <code>deno cache</code> parancs szolgál, amelyet a képfájl építése során érdemes meghívni.</p>
<p>Szintén hasonló célokat szolgálna a <code>deno bundle</code> parancs is, amely egyetlen .js fájlba tömörítené a teljes alkalmazást, azonban ennek használata során stabilitási problémákba ütköztünk. Remélhetőleg egy későbbi Deno verzióban javításra kerül.</p>
<p>Hasznos lehet továbbá a <code>--quiet</code> (<code>-q</code>) opció használata, amellyel a diagnosztikai üzenetek kapcsolhatók ki, így azok nem vegyülnek az alkalmazás kimenetével.</p>
<!--kg-card-end: markdown--><p>A fentiek alapján így néz ki egy minta Dockerfile:</p><!--kg-card-begin: markdown--><pre><code class="language-docker">FROM hayd/alpine-deno:1.0.2

# Create app directory
WORKDIR /app

# Prefer not to run as root.
USER deno

# Bundle app source
COPY . .

# Compile the main app so that it doesn't need to be compiled on each startup.
RUN deno cache src/main.ts

EXPOSE 3000

ENTRYPOINT deno run --allow-net --allow-hrtime --allow-env --allow-read --quiet src/main.ts

CMD []
</code></pre>
<!--kg-card-end: markdown--><h2 id="egy-b-felhaszn-l-si-lehet-s-gek">Egyéb felhasználási lehetőségek</h2><p>A szerver oldali fejlesztésen kívül további érdekes felhasználási módokra is lehetőség nyílhat a jövőben. Számunkra ezek közül a legígéretesebbnek az így készült alkalmazások egyetlen futtatható állományba történő becsomagolása tűnik, mely a fejlesztők <a href="https://github.com/denoland/deno/issues/986">hosszú távú céljai</a> között szerepel. A Node.js-hez már most is rendelkezésre állnak hasonló megoldások, például a <a href="https://github.com/dgiagio/warp">warp</a>, az <a href="https://github.com/nexe/nexe">nexe</a>, vagy az Electron alkalmazások becsomagolásához gyakran használt <a href="https://github.com/electron/asar">ASAR</a> technológia, ezek azonban sajnos nehezen birkóznak meg a natív addonokkal, valamint az eredeti forráskód is viszonylag könnyen kibontható az így készült futtatható állományból. A Deno fejlesztői által tervezett megoldás előnye, hogy V8 JavaScript motor <a href="https://v8.dev/blog/custom-startup-snapshots">Snapshot</a>-jaira építve egy bináris, "félig lefordított" változat kerülne beépítésbe az elkészült állományba, amely így gyorsabban indul, és a visszafejtése is sokkal nehezebb. Reményeink szerint ez az irány a jövőben lehetővé teszi majd, hogy JS/TS környezetben is fejleszthetőek legyenek kis méretű, függőségektől mentes, egyetlen állományból álló CLI szoftverek, esetleg a későbbiekben asztali alkalmazások.</p><h2 id="h-tr-nyok-hi-nyoss-gok">Hátrányok, hiányosságok</h2><p>Mint minden új technológiának, így a Deno-nak is megvannak a maga gyermekbetegségei. A tesztelés során, elvétve ugyan, de találkoztunk különféle kompatibilitási problémákkal és kiforratlan hibaüzenetekkel.</p><p>A Node.js-ből ismert, népszerű modulok jelentős része még nem érhető el, az alternatívák pedig gyakran nem alkalmasak éles környezetben történő használatra. Ugyan a Deno támogatja az ES modulokat, a Node-ból ismert require hívást viszont nem, ahogy a standard library sem kompatibilis a Node.js-sel. Szerencsére számos fejlesztő dolgozik azon, hogy egyre több modul legyen elérhető Deno alatt is, így idővel ez változni fog.</p><p>Különösen nagy nehézséget jelent a megváltozott környezet a natív addonokra épülő modulok esetén. Jó példa erre az <a href="https://deno.land/x/sqlite/">SQLite</a> modul, amely jelenleg WebAssembly-n keresztül érhető el, teljesítménye és rugalmassága jócskán alulmarad a Node-ból megszokott megoldásoknak.</p><p>Habár kezdetben nem hiányzott, a néhány napos tesztelés során egyre szembetűnőbbé vált a package.json hiánya, amelyben egy helyen megtalálható az alkalmazás összes külső függősége. Ez segíti a külső modulok auditálását, valamint az alkalmazás különböző részei által importált verziók szinkronban tartását. Alternatívaként a Deno csapata egy központi <a href="https://deno.land/manual/linking_to_external_code#it-seems-unwieldy-to-import-urls-everywhere">deps.ts</a> fájl használatát javasolja, amely valóban megoldást jelent a problémák egy részére, azonban várhatóan nehezebb lesz automatizált eszközökkel feldolgozni a Node hasonló megoldásánál.</p><h2 id="-sszegz-s">Összegzés</h2><p>A felsorolt hátrányok ellenére összességében elnyerte csapatunk tetszését a Deno, amely a jövőben a Node.js alternatívája lehet a webalkalmazások fejlesztése során. Az ökoszisztéma fejletlensége és a tapasztalt stabilitási problémák miatt éles használatra még nem ajánljuk, de mindenképp figyelemmel fogjuk kísérni a technológia fejlődését. A többi már a fejlesztőközösségen múlik :)</p>]]></content:encoded></item><item><title><![CDATA[Menetrend újratervezve: frissített külső, egyszerűbb navigáció]]></title><description><![CDATA[Menetrend alkalmazásink hamarosan megújult külsővel, és még kényelmesebb navigációval várnak benneteket. Részletek és galéria a poszban.]]></description><link>https://blog.appcorner.eu/2020/05/11/menetrend-ujratervezve-frissitett-kulso-egyszerubb-navigacio/</link><guid isPermaLink="false">5ec7fe73426cf4000164cc11</guid><category><![CDATA[Menetrend]]></category><dc:creator><![CDATA[Tamás Szincsák]]></dc:creator><pubDate>Mon, 11 May 2020 13:25:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/Cover.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/Cover.png" alt="Menetrend újratervezve: frissített külső, egyszerűbb navigáció"><p>Pontosan ma 8 éve jelent meg első menetrend alkalmazásunk Debrecenben, mára pedig már hat nagyvárosban vált elérhetővé. Időközben közel egymillióan töltöttétek le valamelyik menetrend alkalmazásunkat, hamarosan pedig megújult külsővel, és még kényelmesebb navigációval vár benneteket. Részletek és galéria a borítókép alatt.</p><figure class="kg-card kg-image-card"><img src="https://blog.appcorner.eu/content/images/2020/05/Cover-1.png" class="kg-image" alt="Menetrend újratervezve: frissített külső, egyszerűbb navigáció"></figure><h2 id="mi-v-ltozik">Mi változik?</h2><p>A régóta esedékes ráncfelvarráson felül több hasznos újdonság is bekerül alkalmazásinkba, amelyeket már régóta kértetek.</p><h3 id="k-nnyen-el-rhet-keres-s">Könnyen elérhető keresés</h3><p>A kezdőképernyő felső részén egy keresősáv kap helyet, ahol egységes módon kereshetsz majd járatokra, megállókra, de akár utazástervezést is indíthatsz majd innen. A változással a kedvenceid mellett már a ritkábban használt járatok és megállók információihoz is könnyebben hozzáférhetsz, de a jelenleginél nagyobb hangsúlyt kap az útvonaltervezés, és így a <a href="https://blog.appcorner.eu/blog/gyalogos-es-kerekparos-utazastervezes-menetrend-alkalmazasainkban/">kerékpáros tervezés</a> is. Korábbi méréseink alapján a felhasználóink 62%-a elsősorban a kedvenceket és a táblázatos menetrendeket használja a tájékozódásra, míg az utazástervező kihasználtsága mindössze 10% körül mozog. A fejlesztéssel szeretnénk az újdonságokra fogékony felhasználóinkat a megszokott menetrendi tábláktól a rugalmasabb, dinamikus tájékozódást biztosító funkciók irányába terelni.</p><p>A korábbi listák és keresőmezők továbbra is elérhetőek maradnak a megszokott helyeken, ezzel biztosítva a zavartalan átmenetet a régi és az új külső között.</p><h3 id="-tdolgozott-kezd-k-perny-">Átdolgozott kezdőképernyő</h3><p>A keresőmező alatt foglal majd helyet az információs sáv, ahol a legfontosabb hírek és közlekedési változások jelennek meg. Ez csak a kezdőképernyőn lesz látható, és az eddiginél kevesebb helyet fog kitakarni a kedvencekből, így a korábbinál gyakrabban tudunk majd itt megjeleníteni fontos információkat.</p><h3 id="be-p-tett-v-rosv-laszt-">Beépített városválasztó</h3><p>Ha több menetrend alkalmazásunkat is használod, ezt a fejlesztést szeretni fogod. Hamarosan az appon belül is válthatsz majd a telepített menetrend alkalmazásaink között, valamint lehetőséged lesz közvetlenül innen telepíteni a hiányzókat.</p><h3 id="-s-persze-az-id-szer-r-ncfelvarr-s">És persze az időszerű ráncfelvarrás</h3><p>Kisebb mértékben ugyan, de persze az app többi része is átalakul majd. Az alapvető működésen nem szeretnénk változtatni, célunk az, hogy az alkalmazás megjelenése lazábbá, szerethetőbbé váljon, és a manapság divatos készülékek megjelenésével összhangban legyen. A legtöbb helyen a fehér felületek és lekerekített sarkok dominálnak majd. Természetesen az éjszakai témáról sem feledkezünk meg, az a ráncfelvarrás után is teljes mértékben támogatott marad.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/05/Detail-1.png" width="1584" height="2940" alt="Menetrend újratervezve: frissített külső, egyszerűbb navigáció"></div><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/05/Detail-2.png" width="1584" height="2940" alt="Menetrend újratervezve: frissített külső, egyszerűbb navigáció"></div><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/05/Detail-3.png" width="1584" height="2940" alt="Menetrend újratervezve: frissített külső, egyszerűbb navigáció"></div></div><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/05/Detail-4.png" width="1584" height="2940" alt="Menetrend újratervezve: frissített külső, egyszerűbb navigáció"></div><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/05/Detail-5.png" width="1584" height="2940" alt="Menetrend újratervezve: frissített külső, egyszerűbb navigáció"></div></div></div></figure><p>A felhasználói felületet érintő fejlesztések mellett a háttérben folyamatosan dolgozunk az alkalmazás korszerűsítésén is. Erre nagy szükség van, hiszen az első verziót még 2011 végén, Android 2.1-re kezdtük el fejleszteni, a jelenleg is letölthető változat pedig már az Android 10-et is teljes mértékben támogatja.</p><p>A külsőn kívül a háttérben az alkalmazás belsejének modernizálásán is folyamatosan dolgozunk. Érdekesség lehet az alkalmazás-fejlesztésben jártas olvasók számára, hogy az elmúlt években a kliens oldali kódbázis csaknem fele újult meg, annak 35%-a mára már Kotlin nyelven íródott (10% C++, 55% Java). Reményeink szerint ez az arány idővel eléri majd a 80-85%-ot is.</p><p>Az új változat várhatóan augusztus végén érkezik majd, és minden jelenleg támogatott készüléken elérhető lesz.</p>]]></content:encoded></item><item><title><![CDATA[Modern vállalati szoftverek az elégedettebb munkavállalókért]]></title><description><![CDATA[A vállalati szoftver egy munkaeszköz és mint minden munkaeszköznél itt is fontos a minőség. Egy jó minőségű szoftverrel pénzt, időt és rengeteg frusztrációt megspórolhatunk.]]></description><link>https://blog.appcorner.eu/2020/04/22/modern-vallalati-szoftverek-az-elegedettebb-munkavallalokert/</link><guid isPermaLink="false">5ef1045a0a0fc70001a429c5</guid><category><![CDATA[Digitalizáció]]></category><category><![CDATA[Üzlet]]></category><dc:creator><![CDATA[János Zoltán Kovács]]></dc:creator><pubDate>Wed, 22 Apr 2020 23:19:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/06/25060.jpg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://blog.appcorner.eu/content/images/2020/06/90180.jpg" class="kg-image" alt="Modern vállalati szoftverek az elégedettebb munkavállalókért"></figure><img src="https://blog.appcorner.eu/content/images/2020/06/25060.jpg" alt="Modern vállalati szoftverek az elégedettebb munkavállalókért"><p>Képzeld el egy vállalkozás leendő munkavállalóját. Éppen állásinterjúra tart hozzájuk. Egy motivált huszonéves pályakezdő. Az iPhone-ján a Google Maps-t használva navigál az irodához, miközben Spotify-on zenét hallgat. Aznap ebédet Wolt-ról rendelt, a barátai épp Messengeren keresztül látják el tanácsokkal az interjúhoz. Életének jelentős részét a digitális térben éli, modern, felhasználóbarát appokat használva.</p><p>Most képzeld el, ahogy leültetik a 10 éve méregdrágán beszerzett, de már akkor 15 éves ERP rendszer elé, amihez hasonlót még nem is látott – túl fiatal hozzá. Vagy ami még jobb, egy valamikor a 90-es években létrejött és azóta folyamatosan bővülő Excel táblázat elé. Vajon mennyire lesz motivált?</p><p>A fenti példa talán picit túlzó, de remekül tükrözi a lényeget. Manapság gyakran előkerül a látens munkaerőhiány fogalma a kkv szektor kapcsán. A vállalkozások egy jelentős része komoly munkaerőhiánnyal küzd, főként azért, mert a potenciális munkavállalók nem találják elég vonzónak a vállalatot vagy a feltételeket. Szakértők szerint ennek egyik fő oka a generációváltás. A bér már csak egy a sok szempont körül, amelyek alapján a frissen végzettek döntenek.</p><p>2025-re a munkavállalók 75%-át az Y és Z generáció tagjai, vagyis az 1984-2009 között születettek <a href="https://www.portfolio.hu/gazdasag/20191127/nincs-felkeszulve-a-munkahelyi-generaciovaltasra-a-kkv-szektor-407849">teszik majd ki</a>. Ők nem betanulják egy-egy szoftver használatát, hanem sokszor már nagyon fiatal korban elsajátítják az alapvető készségeket, ami a hatékony használathoz szükséges. Elvárják, hogy egy szoftver ismerős, felhasználóbarát megoldásokat alkalmazzon, modern, esztétikus, letisztult és kényelmes legyen.</p><p>Sok vállalkozás használ elavult szoftvereket, sokan közülük mai napig az induláskor beszerzett rendszerekkel dolgoznak, amelyek felett már jócskán eljárt az idő. A modern, felhő alapú megoldások rugalmasabb konstrukciókat kínálnak, jellemzően alacsonyabb költséggel. A távoli elérés, a mobileszközök támogatása, a telepítés és karbantartás nélküli használat csak néhány az előnyeik közül.</p><p>Ami sokkal fontosabb, hogy az említett modern szoftverek zöme már egy olyan korban készült, amelyben a felhasználók kényelme nem másodlagos extra szolgáltatás, hanem követelmény. Ez nagyban növeli a használhatóságot és csökkenti a frusztrációt. A vállalati szoftver a napi szintű elkeseredett küzdelem tárgya helyett hatékony eszközzé válik, a munkavállalók pedig végre arra koncentrálhatnak, ami igazán fontos.</p>]]></content:encoded></item><item><title><![CDATA[Térképes menetrend alkalmazások az App Gallery-ben]]></title><description><![CDATA[Február közepén váltak elérhetővé a legnépszerűbb menetrend alkalmazásaink a Huawei App Gallery-ben, az elmúlt hetekben pedig azon dolgoztunk, hogy egy új, OpenStreetMap alapú interaktív térképet integráljunk alkalmazásainkba.]]></description><link>https://blog.appcorner.eu/2020/03/13/terkepes-menetrend-alkalmazasok-az-app-gallery-ben/</link><guid isPermaLink="false">5ec7fe21426cf4000164cc06</guid><category><![CDATA[Menetrend]]></category><category><![CDATA[Tech]]></category><dc:creator><![CDATA[Tamás Szincsák]]></dc:creator><pubDate>Fri, 13 Mar 2020 17:30:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/Screenshot_20200523-124534.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/Screenshot_20200523-124534.png" alt="Térképes menetrend alkalmazások az App Gallery-ben"><p>Február közepén váltak elérhetővé a legnépszerűbb menetrend alkalmazásaink a Huawei App Gallery-ben, kezdetben korlátozott funkcionalitással: interaktív térképek, valamint push üzenetek nélkül.</p><p>Az elmúlt hetekben azon dolgoztunk, hogy egy új, OpenStreetMap alapú interaktív térképet integráljunk alkalmazásainkba, amely már teljes értékűen működik a Google-mentes készülékeken is. Alkalmazásaink legújabb verziója a mai naptól vált elérhetővé a felhasználóink számára, így az elsők között nyújthatunk térképes navigációt a közösségi közlekedéssel utazók számára az említett készülékeken. A fejlesztés nem csak az idén megjelenő Huawei telefonok tulajdonosainak, hanem az egyedi ROM-ok használóinak és az open source közösségek tagjainak is előnyös. Az alábbiakban röviden összefoglaljuk a fejlesztés célját és a legnagyobb kihívásokat.</p><h2 id="motiv-ci-">Motiváció</h2><p>Aki követi a technológiai világ híreit, bizonyára hallott a „Huawei ban”-ról, amely tavaly május óta megtiltja az USA-beli cégek (mint pl. a Google) és a Huawei együttműködését. Ennek következtében sem a Google népszerű alkalmazásai (Gmail, YouTube, Google Térkép, stb), sem a fejlesztők számára nyújtott szolgáltatásai nem érhetőek el a Huawei újonnan megjelenő készülékein. Ez utóbbiak közé tartozik a Google Play Szolgáltatások, amely többek között a Google alapú térképek működéséhez elengedhetetlen, valamint a Firebase egyes részei, amely különféle fejlesztői eszközök mellett a push üzenetek működését is biztosítja az Androidos készülékeken.</p><p>Mivel a Huawei jelentős szereplő a hazai mobil piacon (menetrend alkalmazásaink felhasználóinak kb. 30%-a a gyártó készülékeit használja), így fontos volt számunkra, hogy alkalmazásaink ezeken az eszközökön is elérhetőek maradjanak, a kieső szolgáltatásokat pedig házon belüli megoldásokkal, vagy a Huawei által nyújtott alternatívákkal pótoljuk. Ez utóbbiban jelentős segítséget nyújtott számunkra a Huawei Magyarország csapata: információkkal láttak el minket a fejlesztők számára nyújtott eszközeikről, valamint készséggel válaszoltak az App Gallery használata és az appok feltöltése során felmerülő kérdéseinkre. A segítséget ezúton is köszönjük.</p><h2 id="-let-a-google-n-t-l">Élet a Google-ön túl</h2><p>Manapság az Android alkalmazások többségében a Google térképeivel találkozhatunk. Ennek fő oka, hogy ez a hivatalos, Google által támogatott megoldás az Android platformon, amely ráadásul a legtöbb esetben teljesen ingyenesen, bármiféle havidíj vagy rejtett költségek nélkül érhető el a fejlesztők számára. Emellett a felhasználók is egy jól ismert, konzisztens minőségű térképpel találkozhatnak.</p><p>A kényelemnek és egyszerűségnek azonban ára van: ezzel a lépéssel nem csak bezárjuk az érintett alkalmazást a Google ökoszisztémájába, de a testreszabási lehetőségek is korlátozottak, és sajnos a teljesítmény is hagy némi kívánnivalót maga után, különösen, ha ezres nagyságrendű szimbólum (esetünkben járművek, megállók) megjelenítésére van szükség. A legtöbb alkalmazás esetén ezek elfogadható kompromisszumok lehetnek az alacsonyabb fejlesztési költségekért cserébe, számunkra azonban egyre nagyobb nehézséget jelentettek, így más megoldás után kellett néznünk.</p><!--kg-card-begin: html--><div style="background: rgba(128, 128, 128, 0.065); border-radius: 0.25em; margin-bottom: 1.5em; padding: 1.25em 1em 0 1em; font-size: 0.9em"><!--kg-card-end: html--><p>Érdekesség, hogy tavaly májusban jelentette be a Google a <a href="https://developers.google.com/maps/documentation/android-sdk/v3-client-migration">Maps SDK for Android </a>harmadik verzióját, amely elődeivel ellentétben már önállóan, a Google Play Szolgáltatások nélkül is működőképes, így minden készüléken használható lehet. Az új verzió felépítésében is lényegesen eltér a korábbi változattól: míg a v2 csak egy vékony réteg volt az app és a Google szolgáltatásai között, addig a v3 már minden szükséges függőséget tartalmaz, melyeket így az alkalmazás magával vihet. Ez az érintett alkalmazások méretének 5-8 MB-os növekedésével jár, cserébe viszont számos, régóta fennálló teljesítménybeli problémát oldhat majd meg. Jelenleg az SDK béta stádiumban van, a <a href="https://issuetracker.google.com/issues?q=componentid:541018%20status:open">számos nyitott probléma</a> miatt éles környezetben történő használatra egyelőre sajnos nem alkalmas.</p><!--kg-card-begin: html--></div><!--kg-card-end: html--><p>Manapság már számos alternatíva érhető el, melyek változó minőségben és áron állnak rendelkezésre. Olyan térképszolgáltatást kellett választanunk, amely kiforrott, kellőképpen testre szabható, és több százezres felhasználószám esetén is megfizethető.</p><p>A lehetőségek mérlegelése után a <a href="https://github.com/mapbox/mapbox-gl-native">Mapbox mobile SDK</a>-ra esett a választásunk, amelyhez a térképadatokat közvetlenül az OpenStreetMap-ről szereztük be, a térképeket pedig saját infrastruktúránkban hozzuk létre és ott is tároljuk. Ezzel egyrészt egy rugalmas, teljes mértékben testreszabható megoldáshoz jutottunk, másrészt jelentős költséget takaríthatunk meg, hisz meglévő infrastruktúránkra építve a külső szolgáltatók által kínált lehetőségeknél kedvezőbb költségekkel tudjuk üzemeltetni térképszolgáltatásunkat.</p><p>Korábban már találkozhattatok nálunk ezzel a megoldással: két évvel ezelőtt a <a href="https://blog.appcorner.eu/blog/gyalogos-es-kerekparos-utazastervezes-menetrend-alkalmazasainkban/">kerékpáros tervezés</a> bevezetése során használtunk OSM alapú térképeket, hiszen a kerékpárutak itt sokkal részletesebben szerepeltek, mint a Google-nél, valamint a nyílt adatoknak köszönhetően volt lehetőségünk a hiányzóakat pótolni. Kézenfekvő volt tehát, hogy a jelenlegi fejlesztésnél is ebbe az irányba haladjunk tovább.</p><h2 id="hogyan-tov-bb">Hogyan tovább?</h2><p>Habár a térkép létrehozása nagy előrelépés volt, és kétség kívül a legtöbb munkával járó feladat a fejlesztés során, az integráció még nem teljes: a címek keresésénél továbbra is a Google szolgáltatásaira támaszkodunk, és jelenleg push üzenetek sem érkeznek meg a Google-mentes készülékekre.</p><p>A fejlesztés következő fázisában a Huawei Mobile Services (HMS) integrációján dolgozunk, hogy alkalmazásaink teljes értékűen működjenek a Huawei jövőbeni eszközein is, és minél inkább ki tudják használni a platform által nyújtott szolgáltatásokat.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/05/89445404_4136326579714394_344852175555395584_o-1.jpg" width="1428" height="2935" alt="Térképes menetrend alkalmazások az App Gallery-ben"></div><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/05/89495426_4136327226380996_3905146559452413952_o-1.jpg" width="1428" height="2935" alt="Térképes menetrend alkalmazások az App Gallery-ben"></div></div></div><figcaption>Megújult, OpenStreetMap / MapBox alapú vektortérkép a Budapesti Menetrend alkalmazásban, a csapatunk által tervezett térképstílussal és self-hosted csempeszerverrel.</figcaption></figure><p>Ahogy láthattuk, a Google-mentes platformok megjelenése izgalmas lehetőségeket és egyben érdekes szakmai kihívásokat rejt magában az alkalmazás-fejlesztők számára. Hamarosan egy több részes blog-post sorozatban számolunk be a Huawei AppGallery, valamint HMS használata során szerzett tapasztalatainkról.</p>]]></content:encoded></item><item><title><![CDATA[Nyomtatott megállóhelyi menetrendek Szegeden]]></title><description><![CDATA[A Szegedi Közlekedési Társaság részére belső használatra szánt szoftvert fejlesztettünk a megállóhelyi menetrendi laptáblák, valamint a társaság weboldaláról letölthető menetrendek automatizált generálásához.]]></description><link>https://blog.appcorner.eu/2019/08/30/nyomtatott-megallohelyi-menetrendek-szegeden/</link><guid isPermaLink="false">5ec80440426cf4000164cc5c</guid><category><![CDATA[Munkáink]]></category><category><![CDATA[Menetrend]]></category><dc:creator><![CDATA[AppCorner]]></dc:creator><pubDate>Fri, 30 Aug 2019 14:29:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/08/thumbnail-1.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: html--><div class="ac-work-infocard">
	<div class="partner">Partner: Szegedi Közlekedési Társaság (SZKT)</div>
	<div class="timeframe">Fejlesztés ideje: 2019. augusztus</div>
</div><!--kg-card-end: html--><img src="https://blog.appcorner.eu/content/images/2020/08/thumbnail-1.png" alt="Nyomtatott megállóhelyi menetrendek Szegeden"><p>A Szegedi Közlekedési Társaság részére belső használatra szánt szoftvert fejlesztettünk a megállóhelyi menetrendi laptáblák, valamint a társaság weboldaláról letölthető menetrendek automatizált generálásához. A szoftver alapját a <a href="https://blog.appcorner.eu/munkaink/menetrend-alkalmazasok/">menetrend alkalmazásaink</a> mögötti térinformatikai rendszerek adták, így a kész terméket mindössze egy hónap alatt átadtuk és üzembe helyeztük. A szeptemberi iskolakezdéstől már az új menetrendekkel találkozhatnak az utasok a villamos- és trolibusz-megállókban.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.appcorner.eu/content/images/2020/08/szkt-1-4.png" class="kg-image" alt="Nyomtatott megállóhelyi menetrendek Szegeden"><figcaption>Letölthető megállóhelyi menetrendek a Szegedi Közlekedési Társaság weboldalán (<a href="http://szkt.hu/">szkt.hu</a>).</figcaption></figure><p>Az így készült menetrendek nem csak esztétikusabbak a korábban alkalmazott megoldásnál, de a fejlesztésnek köszönhetően jelentősen egyszerűsödött a megállóhelyi menetrendek frissítésének folyamata is. Változás esetén a pontos megállóhelyi indulásokat tartalmazó táblázatok az előre elkészített sablonok alapján közvetlenül a belső rendszerekben rögzített végállomási indulási időkből és a menetidőből generálódnak, így a laptáblák frissítése minimális emberi beavatkozást igényel.</p><p>Szintén a menetrendi adatokból, teljesen automatizáltan kerül előállításra a hirdetmények bal oldalán található vonalrajz is, amely az egyszerűbb útvonalak mellett az összetettebb szituációkat, mint például az elágazó járatokat és betétjáratokat is támogatja. Ennek köszönhetően lehetőség van több vonal egy oldalon történő megjelenítésére is, melynek köszönhetően a laptáblák nem csak könnyebben áttekinthetőek, de kevesebb helyet is foglalnak.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.appcorner.eu/content/images/2020/08/szkt-2-6.png" class="kg-image" alt="Nyomtatott megállóhelyi menetrendek Szegeden"><figcaption>Elágazó járatok megjelenítése a hirdetményeken (balra).</figcaption></figure><p>Az elkészült hirdetmények a publikálás megkönnyítése céljából a belső folyamatokhoz igazodva, leválogatva tölthetőek le a rendszerből. Mivel a folyamat legtöbb lépcsője automatizált, az új menetrendi táblák gyorsabban elkészülnek, az emberi hibák esélye csökken, így az új típusú hirdetmények kezelése hosszú távon is fenntartható folyamat marad. A fenti megoldás ezen felül utat nyit olyan, a kézi szerkesztés esetén nehezen megvalósítható újítások bevezetése előtt is, mint például térképek és egyéb dinamikus szemléltető ábrák megjelenítése a hirdetményeken.</p>]]></content:encoded></item><item><title><![CDATA[Egy éves az .app TLD és a menetrend.app domain]]></title><description><![CDATA[Tavaly év elején vásárolta meg a Google a jogot az .app végződésű domain-ek értékesítésére, majd május 7-én megnyílt ezek regisztrációjának lehetősége a publikum számára is. Az egy éves évforduló alkalmából a Google most egy válogatást szervezett, amelyben összegyűjtötték a számukra leg...]]></description><link>https://blog.appcorner.eu/2019/05/16/egy-eves-az-app-tld-es-a-menetrend-app-domain/</link><guid isPermaLink="false">5ec7fe06426cf4000164cbfe</guid><category><![CDATA[Menetrend]]></category><category><![CDATA[Tech]]></category><dc:creator><![CDATA[Tamás Szincsák]]></dc:creator><pubDate>Thu, 16 May 2019 08:28:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/featured.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/featured.jpg" alt="Egy éves az .app TLD és a menetrend.app domain"><p>Tavaly év elején vásárolta meg a Google a jogot az .app végződésű domain-ek értékesítésére, majd május 7-én megnyílt ezek regisztrációjának lehetősége a publikum számára is. Az egy éves évforduló alkalmából a Google most egy <a href="https://www.registry.google/announcements/appturnsone/#!/">válogatást szervezett</a>, amelyben összegyűjtötték a számukra legszimpatikusabb 100 szolgáltatást, amelyek már .app domaint használnak. Örömünkre szolgál, hogy a <a href="https://menetrend.app/">menetrend.app</a>-al mi is felkerültünk a fenti listára.</p><p>Még tavaly májusban, nem sokkal a publikus regisztráció indulása után jegyeztük be a menetrend.app domaint, majd néhány nappal később már át is költöztünk a korábbi menetrendapp.hu címről az új helyre. A költözés során figyeltünk arra, hogy a régi URL-eket megfelelő módon irányítsuk át az új címre, valamint arra is, hogy a régebbi, és akár még évekig is aktívan használt app verziók továbbra is megfelelően működjenek. Az átállás zökkenőmentesen zajlott, néhány napon belül a keresőkben is frissült a webcímünk, és azóta is elégedettek vagyunk az új domainünkkel.</p><h2 id="m-gis-milyen-el-nyei-vannak-a-app-domaineknek">Mégis milyen előnyei vannak a .app domaineknek?</h2><p>.app végződésű domaint bárki regisztrálhat, aki valamilyen alkalmazást vagy ehhez kapcsolódó szolgáltatást üzemeltet. Egy .app domain az alábbi előnyöket nyújtja egy klasszikus .com vagy .hu domainhez képest:</p><p><strong>Kötelező HTTPS</strong>: A teljes .app tartomány felkerült a <a href="https://hstspreload.org/">HSTS preload listára</a>, így a böngészők kizárólag HTTPS-en keresztül hajlandóak kommunikálni ezekkel a weboldalakkal. Ez növeli ezen szolgáltatások biztonságát, és összhangban van az Apple és a Google törekvéseivel, amelyeknek köszönhetően az újabb rendszereken már csak HTTPS-en keresztül kommunikálhatnak az <a href="https://developer.apple.com/documentation/security/preventing_insecure_network_connections">iOS</a> és <a href="https://developer.android.com/training/articles/security-config">Android</a> alkalmazások.</p><p><strong>Könnyen megjegyezhető:</strong> azzal, hogy az "app" kifejezés átkerül a domain név végére, a fennmaradó rész rövidebbé és egyszerűbbé válik – sőt, ideális esetben csak egyetlen szót tartalmaz majd. Emellett .app-ra végződő webcímmel kizárólag appok rendelkezhetnek, így a felhasználók számára is egyértelmű, milyen szolgáltatást találnak majd a domain mögött.</p><p><strong>Tiszta lap a későn érkezőknek</strong>: egy új termék vagy szolgáltatás elindításának fontos része a megfelelő domain név kiválasztása, azonban sajnos nem könnyű hangzatos, de mégis szabad domain nevet találni. Gyakran szembesülünk mi is és ügyfeleink is azzal, hogy nem csak a <em>product</em>.com, a <em>product</em>.net, vagy épp a <em>product</em>.io, de még a közel sem optimális get<em>product</em>app.net is foglalt. Habár a Google közleménye szerint csak az első 24 órában több, mint 100 000 .app domaint regisztráltak, mégis kevésbé telített az évtizedek óta létező társainál, így jó alternatíva lehet az újonnan induló appok és szolgáltatások számára.</p>]]></content:encoded></item><item><title><![CDATA[Android fejlesztésről beszéltünk a Step into Meetupon]]></title><description><![CDATA[2018. november 7-én, a Step into Meetup csapatának szervezésében került megrendezésre a Debreceni Egyetem Informatika Karán a Step into Mobile meetup, amelyen ez alkalommal a mobilalkalmazás-fejlesztés volt terítéken.]]></description><link>https://blog.appcorner.eu/2018/11/07/android-fejlesztesrol-beszeltunk-a-step-into-meetupon/</link><guid isPermaLink="false">5eca4d53c118980001aab3a7</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[Tamás Szincsák]]></dc:creator><pubDate>Wed, 07 Nov 2018 20:00:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/Screenshot-2020-05-24-at-12.36.25.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/Screenshot-2020-05-24-at-12.36.25.png" alt="Android fejlesztésről beszéltünk a Step into Meetupon"><p>2018. november 7-én, a <a href="https://www.facebook.com/stepintomeetups/">Step into Meetup</a> csapatának szervezésében került megrendezésre a Debreceni Egyetem Informatika Karán a Step into Mobile meetup, amelyen ez alkalommal a mobilalkalmazás-fejlesztés volt terítéken.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.facebook.com/events/deik/step-into-mobile-sim-201811/303567580236600/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Step into Mobile // SiM 2018/11</div><div class="kg-bookmark-description">NOVEMBERBEN MINDEN A MOBILRÓL SZÓL! 2018. november 7-én 18 órakor folytatódik a Step into Meetups kezdeményezés. Ebben a hónapban a MOBIL témaköréből hozunk el nektek három előadást. Kövesd az eseményünket, hogy többet is megtudhass az előadóinkról és a témáikról! RÉSZLETEK HAMAROSAN! ;) A meetu…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static.xx.fbcdn.net/rsrc.php/yz/r/KFyVIAWzntM.ico" alt="Android fejlesztésről beszéltünk a Step into Meetupon"></div></div><div class="kg-bookmark-thumbnail"><img src="https://scontent.xx.fbcdn.net/v/t1.0-0/c95.0.206.206a/p206x206/44028130_458262361248138_1501209413480873984_o.jpg?_nc_cat=101&amp;ccb=2&amp;_nc_sid=b386c4&amp;_nc_ohc=2pCR1E7z7n0AX-8yBj1&amp;_nc_ht=scontent.xx&amp;tp=27&amp;oh=02edf1585e656086f935b4ed2bc5ffd9&amp;oe=5FC9FF5A" alt="Android fejlesztésről beszéltünk a Step into Meetupon"></div></a></figure><p>Az eseményen három előadó három különböző technológiával, de közös specifikáció alapján ismertette egy egyszerű mobilalkalmazás létrehozásának folyamatát, illetve röviden összefoglalta az adott technológia jellegzetességeit, annak legfőbb előnyeit és hátrányait. A résztvevők így rövid betekintést nyerhettek a mobil fejlesztés világába, valamint megismerkedhettek a fejlesztés során használt legfontosabb technológiák alapjaival.</p><p>A választott technológiák között természetesen megjelent a natív iOS fejlesztés Swift nyelven, a natív Android fejlesztés Kotlin nyelven, valamint egy cross platform megoldás is, amely a Flutter segítségével került bemutatásra.</p><p>Az iOS alkalmazás fejlesztését Pete Zsolt ismertette, aki a CodeYard csapatát erősíti. Az alkalmazás Swift 4.2 segítségével, Xcode IDE-ben került megvalósításra. Zsolt ismertette, hogyan is zajlanak egy iOS alkalmazás létrehozásának főbb mozzanatai, kitért az Interface Builder használatának alapjaira, valamint live coding során bemutatta egy új funkció fejlesztésének menetét. Az alkalmazás függőségeinek kezelése a CocoaPods-t segítségével történt, a API-val történő kommunikációt és az adatok betöltését pedig az Alamofire + RxSwift + RxCocoa hármassal szemléltette.</p><p>A Simkó Szilárd Viktor által bemutatott alkalmazás Flutter-rel készült, amely cross-platform technológia révén Androidon és iOS-en is egyaránt futtatható. Az alkalmazás Dart nyelven íródott, míg a felhasználói felület a Flutter környezetben megszokott módon <a href="https://flutter.dev/docs/get-started/flutter-for/declarative">deklaratív UI</a> elvén készült, amely egy új, feltörekvő szemlélet a mobil fejlesztésben.</p><h2 id="nat-v-alkalmaz-sfejleszt-s-androidon">Natív alkalmazásfejlesztés Androidon</h2><p>Csapatunk Android vonalon képviselte magát a rendezvényen: előadónk egy 45 perces prezentáció keretében beszélt a natív Android alkalmazás-fejlesztésről, az alkalmazások általános felépítéséről, valamint a legszembetűnőbb eltérésekről más platformokhoz, pl. az iOS-hez vagy a webhez képest.</p><p>A bemutatott <a href="https://github.com/stepintomeetups/02-18-nov-gitstar-android">alkalmazás</a> egy egyszerű vékony kliens, amely a GitHub publikus API-ját használva listáz repókat, megmutatja egy kiválasztott repó alapvető információit, illetve lehetőséget biztosít azok csillagozására. Az alkalmazás tartalmazza azokat az elemeket, amelyekre egy mobilalkalmazás fejlesztése esetén legelőször szükség van: lista és detail képernyőkre, keresésre, mindezt rendszerint valamilyen REST API segítségével megvalósítva, igényes felhasználói felülettel.</p><p>Az app a <a href="https://developer.android.com/jetpack/docs/guide">Google legújabb ajánlásainak</a> megfelelően került megvalósításra, központjában az OkHttp + Retrofit + GSON hármasra épülő szolgáltatás réteg áll, míg a felhasználó felület a tavalyi Google I/O-n bemutatott <a href="https://developer.android.com/jetpack/androidx/releases/lifecycle">Lifecycle</a> komponensekre és a ViewModel-re épít. Az előadás során igyekeztünk szemléltetni a Kotlin programozási nyelv előnyeit, így a <a href="https://developer.android.com/kotlin/ktx?gclid=EAIaIQobChMI3L_jksCI6gIVxxUYCh3iVgXHEAAYASAAEgLBIfD_BwE&amp;gclsrc=aw.ds">Synthetic Binding</a> és a <a href="https://github.com/Kotlin/kotlinx.coroutines">kotlinx.coroutines</a> is megjelenik a kódban.</p><figure class="kg-card kg-image-card"><img src="https://blog.appcorner.eu/content/images/2020/06/Screenshot-2020-06-16-at-9.50.27-1.png" class="kg-image" alt="Android fejlesztésről beszéltünk a Step into Meetupon"></figure><p>Az előadás zárásaként megemlítésre kerültek az Android fejlesztés legfőbb nehézségei más platformokhoz képest: az alkalmazások bonyolult életciklusa, a képernyők közötti kommunikáció nehézségei, és az állapot mentésének szükségessége, hangsúlyozva a fizikai eszközön történő tesztelés fontosságát. Természetesen nem maradhatott ki a fragmentáció sem, amely az elmúlt évek fejlesztéseinek köszönhetően szerencsére már nem okoz akkora nehézséget a fejlesztők számára, mint korábban.</p><p>Ezúton is köszönjük a meghívást a Step into Meetup csapatának. Az előadáshoz kapcsolódó kód elérhető a <a href="https://github.com/stepintomeetups/02-18-nov-gitstar-android">GitHub</a>-on.</p>]]></content:encoded></item><item><title><![CDATA[Creating Custom Digital Maps]]></title><description><![CDATA[Imagine your own digital map. Vector based, fully customized and self hosted for full control. Leveraging the possibilities of cutting edge open source components we can realize that dream for you.]]></description><link>https://blog.appcorner.eu/2018/05/18/creating-custom-digital-maps/</link><guid isPermaLink="false">5ebf0811426cf4000164cb76</guid><category><![CDATA[Our Work]]></category><dc:creator><![CDATA[AppCorner]]></dc:creator><pubDate>Fri, 18 May 2018 21:23:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/maps-cover-25a8d642fbe5dc1a78def864a131b79792178b9697d0fd8496c67371b2c4e7c5-2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/maps-cover-25a8d642fbe5dc1a78def864a131b79792178b9697d0fd8496c67371b2c4e7c5-2.jpg" alt="Creating Custom Digital Maps"><p>Imagine your own digital map. Vector based, fully customized and self hosted for full control. Leveraging the possibilities of cutting edge open source components we can realize that dream for you. During the recent years we have gathered an extensive amount of know-how and developed our own toolset, that allows us to configure your own custom digital map quickly and efficiently. Without restrictive licenses and hidden costs, you can integrate it to virtually any application.</p><!--kg-card-begin: html--><div id="map" style="width: 100vw; height: 360px; margin-bottom: 1em"></div>
<script type="text/javascript">
    mapboxgl.accessToken = '';
    var map = new mapboxgl.Map({
        container: 'map',
        center: [19.0436, 47.5015],
        scrollZoom: false,
        zoom: 11,
        trackResize: true,
        attributionControl: false,
        style: 'https://maps.services.appcorner.eu/styles/positron/style.json?key=l4wpK4EYZxNdnISNNFpdevDgBEDmdeQ6'
    });
    map.addControl(new mapboxgl.AttributionControl({
        compact: true
    }));
</script><!--kg-card-end: html--><h2 id="full-control">Full control</h2><p>Both the look and the contents of your map is fully customizable. Our team can help you with content creation, content conversion and customization. Our process is streamlined and effective with quick turnaround times. Depending on third-party providers often results in unseen costs and mandatory changes in your business model to accommodate changes in theirs. By using open source technology you greatly reduce this dependency and acquire full control over your maps.</p><figure class="kg-card kg-image-card"><img src="https://blog.appcorner.eu/content/images/2020/05/maps-full-control-4d3c9cda6e4b43ceaf1726881764f333e4f228b5a5395d7f6d57b624b07431ab-2.jpg" class="kg-image" alt="Creating Custom Digital Maps"></figure><h2 id="focus-on-content">Focus on content</h2><p>Forget about technology, we got it covered. You can focus on what is most important: Delivering exceptional quality content to your customers. With new technologies approaching like AR, maps are becoming increasingly important. Being able to tailor them to you needs holds great benefits to your business. Whether your focus is on a single event, a whole city, country or worldwide, we can help you create the map that suits your needs.</p><h2 id="map-demos">Map demos</h2><ul><li><a href="https://appcorner.eu/projects/creating-custom-digital-maps/demos/base-styles">Base map styles</a></li><li><a href="https://appcorner.eu/projects/creating-custom-digital-maps/demos/directions">Directions</a></li></ul>]]></content:encoded></item><item><title><![CDATA[Egyedi digitális térképek létrehozása]]></title><description><![CDATA[Képzeld el egy saját digitális térképet. Vektor alapú, teljesen testreszabott és self-hosted. A legmodernebb nyílt forrású komponensek lehetőségeit kihasználva megvalósíthatjuk az álmodat.]]></description><link>https://blog.appcorner.eu/2018/05/18/egyedi-digitalis-terkepek-letrehozasa/</link><guid isPermaLink="false">5ebedcb9426cf4000164cacb</guid><category><![CDATA[Tech]]></category><dc:creator><![CDATA[János Zoltán Kovács]]></dc:creator><pubDate>Fri, 18 May 2018 18:21:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/maps-cover-25a8d642fbe5dc1a78def864a131b79792178b9697d0fd8496c67371b2c4e7c5.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/maps-cover-25a8d642fbe5dc1a78def864a131b79792178b9697d0fd8496c67371b2c4e7c5.jpg" alt="Egyedi digitális térképek létrehozása"><p>Képzeld el egy saját digitális térképet. Vektor alapú, teljesen testreszabott és self-hosted. A legmodernebb nyílt forrású komponensek lehetőségeit kihasználva megvalósíthatjuk az álmodat. Az elmúlt években széleskörű szakértelemre tettünk szert és saját eszköztárat fejlesztettünk ki, amely lehetővé teszi számunkra, hogy gyorsan és hatékonyan készítsük el a saját digitális térképedet kiszolgáló környezetet. Korlátozó licencek és rejtett költségek nélkül, szinte bármilyen alkalmazásba integrálhatod azt.</p><!--kg-card-begin: html--><div id="map" style="width: 100vw; height: 360px; margin-bottom: 1em"></div>
<script type="text/javascript">
    mapboxgl.accessToken = '';
    var map = new mapboxgl.Map({
        container: 'map',
        center: [19.0436, 47.5015],
        scrollZoom: false,
        zoom: 11,
        trackResize: true,
        attributionControl: false,
        style: 'https://maps.services.appcorner.eu/styles/positron/style.json?key=l4wpK4EYZxNdnISNNFpdevDgBEDmdeQ6'
    });
    map.addControl(new mapboxgl.AttributionControl({
        compact: true
    }));
</script><!--kg-card-end: html--><h2 id="teljes-kontroll">Teljes kontroll</h2><p>A térkép megjelenése és tartalma is teljes mértékben testreszabható. Csapatunk segít a tartalomkészítésben, a tartalomkonverzióban és a testreszabásban. Folyamatunk korszerű és hatékony, gyors átfutási idővel. Külső szolgáltatóktól való függés sokszor végződik előre nem látott költségekkel. Üzletimodelled változtatására kényszerülhetsz amiatt, hogy az ő üzleti modelljüknek megfelelj. A nyílt forráskódú technológia használatával nagymértékben csökkentheted ezt a függést, és teljes irányítást szerezhetsz a térképeid felett.</p><figure class="kg-card kg-image-card"><img src="https://blog.appcorner.eu/content/images/2020/05/maps-full-control-4d3c9cda6e4b43ceaf1726881764f333e4f228b5a5395d7f6d57b624b07431ab.jpg" class="kg-image" alt="Egyedi digitális térképek létrehozása"></figure><h2 id="koncentr-lj-a-tartalomra">Koncentrálj a tartalomra</h2><p>Felejtsd el a technológiát, azt mi megoldjuk. A legfontosabbra összpontosíts: kivételes minőségű tartalom biztosítása ügyfeleid számára. Az olyan új technológiák elterjedésével, mint az AR, a térképek egyre fontosabbá válnak. Az igényednek megfelelő testreszabás komoly üzleti előnyökkel járhat. Legyen szó egyetlen rendezvényről, egy egész városról, országról vagy akár az egész világról, mi segítünk az igényeidnek megfelelő térkép elkészítésében.</p><h2 id="t-rk-p-dem-k">Térkép demók</h2><ul><li><a href="https://appcorner.eu/hu/munkaink/egyedi-digitalis-terkepek-letrehozasa/demok/alap-stilusok">Alapértelmezett térkép stílusok</a></li><li><a href="https://appcorner.eu/hu/munkaink/egyedi-digitalis-terkepek-letrehozasa/demok/utvonaltervezo">Útvonaltervező</a></li></ul>]]></content:encoded></item><item><title><![CDATA[Gyalogos és kerékpáros utazástervezés menetrend alkalmazásainkban]]></title><description><![CDATA[A mai napon megjelent menetrend alkalmazásaink legújabb változata, amely már gyalogos és kerékpáros útvonaltervezésre is lehetőséget biztosít, valamint részletes, lépésről lépésre történő navigációt is nyújt.]]></description><link>https://blog.appcorner.eu/2018/04/17/gyalogos-es-kerekparos-utazastervezes-menetrend-alkalmazasainkban/</link><guid isPermaLink="false">5ec9a927426cf4000164ce45</guid><category><![CDATA[Menetrend]]></category><dc:creator><![CDATA[Tamás Szincsák]]></dc:creator><pubDate>Tue, 17 Apr 2018 10:00:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/artwork.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/artwork.png" alt="Gyalogos és kerékpáros utazástervezés menetrend alkalmazásainkban"><p>A mai napon megjelent menetrend alkalmazásaink legújabb változata, amely már gyalogos és kerékpáros útvonaltervezésre is lehetőséget biztosít.</p><p>Ugyan a tömegközlekedési útvonaltervek részeként eddig is megbecsültük a gyalogos szakaszok várható hosszát, azok elsősorban az átszállások megkönnyítésére, és nem az A-ból B-be történő eljutásra szolgáltak. A mostani fejlesztéssel az alkalmazás a tömegközlekedési útvonaltervek mellett most már azt is <strong>megmutatja, mennyi ideig tartana az adott út gyalogosan vagy kerékpárral</strong>, illetve ez utóbbiakhoz részletes, lépésről lépésre történő navigációt is biztosít.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/06/screenshot-1.png" width="1440" height="2560" alt="Gyalogos és kerékpáros utazástervezés menetrend alkalmazásainkban"></div><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/06/screenshot-2.png" width="1440" height="2560" alt="Gyalogos és kerékpáros utazástervezés menetrend alkalmazásainkban"></div><div class="kg-gallery-image"><img src="https://blog.appcorner.eu/content/images/2020/06/screenshot-3.png" width="1440" height="2560" alt="Gyalogos és kerékpáros utazástervezés menetrend alkalmazásainkban"></div></div></div></figure><p>A felhasználóknak lehetőségük van gyorsabb haladást preferáló, vagy a kerékpárutakat és csöndes mellékutcákat előnyben részesítő útvonalak közül választani. A tervezés természetesen mindkét esetben a kerékpárosokra vonatkozó szabályok figyelembevételével történik.</p><p>A kerékpáros utazástervezéshez a közutak mellett figyelembe vesszük a kifejezetten kerékpárosok részére készült infrastruktúrát is, amelynek forrása az <a href="https://www.openstreetmap.org/">OpenStreetMap</a>. A térképadatokat automatizáltan, heti rendszerességgel vesszük át, hogy mindig naprakész adatokkal tervezhessünk. A gyalogos és kerékpáros tervezéssel kapcsolatos problémákat a szokásos elérhetőségeinken jelezheted nekünk, vagy a nyílt adatoknak köszönhetően akár magad is kijavíthatod őket, melyhez segítséget az <a href="http://www.openstreetmap.hu/szerkesztes">OpenStreetMap hazai oldalán</a> találhatsz.</p><h2 id="kit-ntetett-figyelem-debrecenben">Kitüntetett figyelem Debrecenben</h2><p>Helyi vállalatként különösen fontos számunkra, hogy debreceni alkalmazásunk minél pontosabb és megbízhatóbb legyen – nem csak azért, mert ez volt az első város, ahol elérhetővé vált menetrend alkalmazásunk, hanem mert kollégáink, ismerőseink is nap mint nap használják azt utazásaik során. Az elmúlt években közel 30 km-nyi járdát, valamint több száz jelzőlámpás kereszteződést és gyalogos átkelőt rögzítettünk a városban annak érdekében, hogy alkalmazásunk minél pontosabb és részletesebb útvonalterveket nyújthasson.</p><p>Az elmúlt hetekben végigjártuk a város kerékpárútjait, és az így szerzett tapasztalatok alapján korrigáltuk az OSM térképén észlelt hiányosságokat. Ennek köszönhetően az alkalmazásunk tartalmazza Debrecen teljes kerékpárút hálózatát, <strong>beleértve a közelmúltban átadott szakaszokat is</strong>. A nyílt adatoknak köszönhetően pedig ezek a javítások más területeken is hasznosulhatnak.</p><p>Az alkalmazást, mely a napokban fogja ünnepelni hatodik születésnapját, Debrecenben jelenleg kb. 26 000-en használják utazásaik megtervezésére, közülük 6-7 ezren napi szinten.</p><p>A jó idő közeledtével várhatóan egyre többen igénybe veszik majd az alternatív közlekedési módokat is, a gyalogos és kerékpáros tervezés bevezetésével pedig reméljük, némileg mi is hozzájárhatunk ezek népszerűségéhez.</p><figure class="kg-card kg-image-card"><img src="https://blog.appcorner.eu/content/images/2020/06/bicycle-banner.png" class="kg-image" alt="Gyalogos és kerékpáros utazástervezés menetrend alkalmazásainkban"></figure>]]></content:encoded></item><item><title><![CDATA[Transit Apps]]></title><description><![CDATA[Public transportation is a topic we have spent years on. We have designed several transit apps for Android and we have provided consultation service for numerous third parties. Our transit apps are available in bigger Hungarian cities and have been downloaded more than half million times.]]></description><link>https://blog.appcorner.eu/2018/01/08/transit-apps/</link><guid isPermaLink="false">5ebf0777426cf4000164cb5c</guid><category><![CDATA[Our Work]]></category><dc:creator><![CDATA[AppCorner]]></dc:creator><pubDate>Mon, 08 Jan 2018 22:21:00 GMT</pubDate><media:content url="https://blog.appcorner.eu/content/images/2020/05/menetrend-cover-f8b07572c91e9a7a234ee2be048a4830f375345e7165ad979659d0c517479aba.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.appcorner.eu/content/images/2020/05/menetrend-cover-f8b07572c91e9a7a234ee2be048a4830f375345e7165ad979659d0c517479aba.jpg" alt="Transit Apps"><p>Public transportation is a topic we have spent years on. We have designed and are maintaining several transit apps for Android and we have provided consultation service for numerous third parties. Our transit apps are available in bigger Hungarian cities and have been downloaded more than half million times. This resulted in extensive knowledge of modelling multi modal transportation systems, visualizing schedules and providing our users with optimal trip plans.</p><figure class="kg-card kg-image-card kg-width-full"><img src="https://blog.appcorner.eu/content/images/2020/05/menetrend-cover-f8b07572c91e9a7a234ee2be048a4830f375345e7165ad979659d0c517479aba-1-1.jpg" class="kg-image" alt="Transit Apps"></figure><h2 id="sharing-our-knowledge">Sharing our knowledge</h2><p>We treat our transit apps as a kind of community project rather than a business venue. The main value they provide us is experience and knowledge in a specialized segment of software development. We are always happy to share our experience when approached by others in the industry. Currently, we are providing consultation and development services to several third parties of various size. We are always looking for new challenges and further ways to expand our knowledge.</p><figure class="kg-card kg-image-card"><img src="https://blog.appcorner.eu/content/images/2020/05/menetrend-image-3-41b24af68323ea91d4fdf341dd07f2d891453553d868a96f8757c9eeae370bf6-1.jpg" class="kg-image" alt="Transit Apps"></figure><h2 id="being-open">Being open</h2><p>We believe in open data. We are active maintainers and users of Open Street Map data in our transit apps. We have successfully used and customized Open Trip Planner in multiple instances in different projects over the years. On the long run this provided us with skills we can reuse in future projects for implementing custom map and navigation related solutions.</p><h2 id="first-hand-experience">First hand experience</h2><p>Leveraging the nature of this project, we often use it to experiment with new technologies or to test out improvements targeting our internal processes. Our transit apps give us important insights on how certain technologies perform in live environments, not only from the development perspective but also regarding operations, maintenance and costs. This way we can make sure we only recommend technologies that we have successfully used in our own projects and we are certain they can deliver what our partners need.</p>]]></content:encoded></item></channel></rss>