Válaszok a rendezvényen beérkezett kérdésekre

Ezen az oldalon azokat a kérdéseket gyűjtöttük össze, melyek megválaszolására már nem volt idő az előadások után.

Windows Phone fejlesztői érdekességek
 

Birtok T. Áron: Valóban nagyon jó pofa a speech synthesis és speech recognition, de azt szeretném megtudni, hogy az előadó tud példát olyan appra, ahol ezt tényleg eredményesen kihasználják?

Fekete Krisztián: Ha nem is minden alkalmazás, de léteznek programok ahol ez működik. Például a SkyScanner, ahol szövegesen kereshetek repülőgép járatok között, vagy a Google is, ahol szövegesen indíthatok keresést.


netuddki: Milyen újdonságokat hoz az új WP SDK?

Fekete Krisztián: Sok újdonságot hoz, előreláthatólag megváltozik majd a fejlesztési modell, a Windows 8-hoz nagyon hasonló lesz. Az alábbi újdonságok várhatók még:

Áprilisban minden kiderül a Microsoft által rendezett Build konferencián.


Dániel Béla: A beszédfelismeréhez szükséges-e a net kapcsolat? Működik-e magyar nyelven?

Fekete Krisztián: Magyar nyelven sajnos nem működik. Az alapértelmezett felismeréshez szükséges internetkapcsolat. Van lehetőség viszont saját nyelvtani szabályok kialakítására is, ez lokálisan is működhet. Bővebb infót itt találsz: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206991(v=vs.105).aspx


Fehér A. Szabolcs: Milyen tapasztalatok, esélyek vannak a nemzetközi magazinokban (pl. TechCrunch) való promózásra?

Fekete Krisztián: Fontos az ötlet, és ha nem válaszolnának, nem szabad feladni. Többször is meg kell őket keresni, rengeteg e-mail érkezik hozzájuk.


Laci: Egyszerűbb rá fejleszteni mint androidra vagy iosre?

Fekete Krisztián: Igen, bármikor ki lehet próbálni, a Visual Studio Express változata ingyenes, letölthető innen: http://www.visualstudio.com/products/visual-studio-express-vs. Próbáld ki!


Tudni akarom: Miért nem ment a ppt?

Fekete Krisztián: Ez sajnos nekem is rejtély, szerintem a felbontás lehetett az oka J.

Android: lehetőségek és kihívások a piacvezető mobilplatformon

Tibióta: Miert jo az, ha mar egy bongeszo is hozzaferhet olyan szenzibilis adatokhoz , mint pl. koordinatak? Honnan tudhatom meg, hogy egy weboldal "sunyiban" nem toltogeti fel ezeket az adatokat valahova?

Ekler Péter: Azért jó, mivel így a szenzor és akár hely adatok alapján még testre szabottabb tartalmat kaphatunk a weboldalon. A hely adatok lekérdezésekor rákérdez a böngésző is, hogy engedélyezzük-e ezt. A szenzor adatok engedély nélkül is elérhetők.


Váradi Zsolt: A SOLID D betűjét (dependency injection) mivel szoktátok megoldani? Ismersz esetleg valami karcsú IOC containert? A RoboGuice lehetne egy ellenpélda...

Ekler Péter: Jelenleg még nem tudok ajánlani ilyen containert.


Larten: Tudsz jó TDD tutorialt androidhoz vagy mikor jelenik meg az új könyvetek? :)

Ekler Péter: Az új könyvre sajnos még várni kell egy kicsit (~1 év). Direkt Android TDD tutorialt nem tudok ajánlani sajnos. Az Android developer oldalon érdemes megnézni az Android specifikus tesztelés fő eszközeit és azok alapján talán az általános TDD tutorialok használhatók már


Zoli: Mennyire hátráltatja a platform előrehaladását, fejlesztési lehetőségeit a verziófragmentáció a felhasználók között?

Ekler Péter: Sajnos ez egy valós probléma, érdemes olyan készüléket választani amire várhatóan egy ideig még jönni fognak új frissítések. Ugyanakkor az is igaz, hogy felhasználói szemmel a kisebb verzió váltások nem minden esetben jelentősek és nem feltétlenük okoznak hiányérzetet a flehasználóban.


Szauer Romuald: Az szép dolog, hogy úgy kell tervezni az alkalmazást, hogy könnyen tovább lehessen fejleszteni, de valahol meg kell húzni a határt, mert ha mindent teljesen dinamikusra, modulárisra, továbbfejleszthetőre, stb. szeretnénk megírni, az hatalmasra növelheti a fejlesztési időt. Hol a határ ahol ezt meg kell húzni? Határidő mindig van :)

Ekler Péter: Ez egy teljesen jogos kérdés. Úgy érdemes talán fejleszteni, hogy a megoldást érdemes minél gyakrabban megmutatni a megrendelőnek és olyan irányban alakítani folyamatosan az architektúrát, hogy a megrendelő előrelátható igényei kielégíthetők legyenek.


Váradi Zsolt: Csak egy tipp: próbáld ki a Virtuous Ten Studiót, azzal egy ablakban a teljes visszafejtést el lehet végezni, sőt az APK-t visszacsomagolni is ;)

Ekler Péter: Köszönöm a tippet, most csak az volt a cél, hogy gyorsan egy alap tool-al is megmutassuk, hogy milyen egyszerű a visszafejtés és éppen ezért milyen fontos is védeni a kódot.


Pajor Gábor: Az obfuszkációt ("titkosítást") a Play Store miért nem végzi el magától?

Ekler Péter: Sajnos ezt nem teheti meg automatikusan, mivel az obfuszkáció során rengeteg projekt specifikus dolgot kell beállítani a fejlesztőnek, hogy jól obfuszkálódjon a kód. Rossz beállítások esetén előfordulhat olyan, hogy az obfuszkált kód ugyan települ telefonra, de hibásan fut, vagy futás közben hiba keletkezik, mivel például egy osztály rosszul lett obfuszkálva vagy nem került bele a végleges kódba optimalizációs okokból, hiszen az obfuszkátor egyben optimalizál is.


Szalai Tamás: A C++ nyelven irt Android programok is konnyen visszafejthetok? (NDK, Cross-platform eszkozok)

Ekler Péter: Sajnos C++ kódra is léteznek decompilerek, többen például a Hex-Rays ARM-et javasolták ilyen célból.


Marosi Csaba: Miért olyan lassú az android emulátor?

Ekler Péter: Az Android emulátor a teljes Android rendszert emulálja és nem csak egy szimulátor az alkalmazások tesztelésére. Ez egyben előny is, hiszen olyan funkciókat is kipróbálhatunk, mint például boot utáni indulás. Továbbá az emulátor alapban ARM-os utasításokat emulál, ezért lassú, de érdemes feltenni az Android SDK-val az Android Intel-es image-t a megfelelő verzióhoz, valamint az Intel Hardware Acceleratort (HAXM) és így beállítva az AVD-t már sokkal-sokkal gyorsabb lesz. Alternatívaként a Genymotion emulátor is használható, amely szintén nagyon gyors.

Hatékony szoftverfejlesztés iOS-en
 

Jani: A Countinous Integration hasznalható Enterprise regisztrációval automatikus nightly buildekhez például az ügyfelek fele?

Kelényi Imre: Ha a kérdés arra irányul, hogy lehet-e automatikusan az kiküldeni az ügyfélnek a nightly buildeket, hogy azokat ki tudják próbálni, akkor a válasz igen. Persze ezt beépítve se az Xcode CI se a Jenkins nem tudja, de a TestFlight-al össze lehet lőni mind a két megoldást. Ilyenkor gyakorlatilag a fordítás után készült IPA automatikusan bekerül a TestFlight-ba, a többi opnnantól kezdve már úgy működik mintha a fejlesztő manuálisan töltötte volna fel. Van több tutorial is a neten hogyan lehet ezt megvalósítani:


T. László: Az Xcode continuous integration-nél a teszteszközök/szimulátorok alapkövetelménye az iOS 7.0 vagy képes az Xcode5 által támogatott iOS 5.0 eszközöket is tesztelni? (Szimulátorral iOS6 az alap?)

Kelényi Imre: Amire az Xcode 5.0 tud fordítani az elvileg a Xcode CI is támogatja.


Tua Libom: Szerinted tudna nőni a platform népszerűsége, ha nyitnának a Windowson való fejlesztés felé?

Kelényi Imre: A fejlesztők körében biztosan nőne a platform népszerűsége. Kérdés, hogy ez az átlag felhasználót, közvetett módon, érintené-e. Így is gyakorlatilag minden mobilalkalmazást megvalósítanak iOS-re, nem tudom mekkora pluszt jelentene, ha azok a fejlesztők is beszállnának, akik csak a Mac miatt nem fejlesztenek a platformra. Ezen felül az Apple a Mac-ek elterjedtségét is növeli azáltal, hogy csak OS X alól lehet iOS-re fejleszteni. Bevallom én is csak emiatt tértem át Mac-re évekkel ezelőtt (a hardver elsőosztályú, de az OS X-et nem tartom általánosan jobbnak a Windos 7-8-nál... bár a Unix alapok miatt fejlesztőként mégis kicsit felé billen a mérleg).


Kéki: Miben más a központi szerveren futtatott xcode által végrehajtott fordítás eredménye a fejlesztő gépén történt fordításhoz képest? Milyen plusz információhoz jutok ennek segítségével a fejlesztőnél fordítás + verziókezelő szerver, azaz a "hagyományos" felálláshoz képest?

Kelényi Imre: Az Xcode CI semmilyen olyan plusz információt nem ad, amit a fejlesztő saját gépén nem tud az Xcode-ból kinyerni. Ha csak ezt az oldalát nézzük, akkor "mindössze" annyi az előnye, hogy nem a fejlesztőnek kell lefordítani és letesztelnie több szimulátoron/eszközön. Léteznek azonban külső eszközök, amelyekkel különféle metrikákat lehet számoltatni, esetleg jobban kielemezni a kódot (pl. duplikált kód keresés). Ezeket az Xcode CI-hez nem lehet értelmesen hozzáadni, de a Jenkinssel összelőhetők (pl. http://blog.octo.com/en/jenkins-quality-dashboard-ios-development/ ). Persze ezeket is le lehet futtatni a fejlesztő gépén, de ugye itt az előny az automatizálás.

Multiplatform mobiltechnológiák
 

Kéki: Miben előnyösebb vagy éppen milyen hátrányai vannak a PhoneGap-ben fejlesztett multiplatform alkalmazásoknak a klasszikus webes alkllmazásokhoz képest? Mind a kettőt a böngészőmotor hajtja meg és ugyan azokon a webhez kapcsolódó nyelveken íródnak, így nekem elsőre nem nyilvánvalóak az előnyök.

Szabó Ádám: A PhoneGap elsődleges célja a kliensoldali webes technológiákkal készült webalkalmazások becsomagolása úgy, hogy egy teljes értékű offline, telepíthető, store-ban elhelyezhető app-ot kapunk. Természetesen ezt PhoneGap nélkül is meg lehetne oldani, viszont a PhoneGap legnagyobb erőssége hogy a WebView-ban futó JavaScript kódból biztosít egy kommunikációs csatornát a natív környezetbe, így ezen a csatornán keresztül egyszerűen elérhető szinte bármilyen olyan mobil szolgáltatás/periféria amit egy natív app-ból is elérhetünk, ellentétben egy szimplán webes alkalmazással.


tvertse: TypeScript osztályból apidoc-ot lehet generálni?

Vincze Márk: Nincs rá jelenleg hivatalos megoldás, van már open-source kezdeményezés, de még nem túl kiforrott.


netuddki: Vannak-e éles projektek, amik már TypeScript-et használnak?

Vincze Márk: Visual Studio egyes részei, Bing, Team Foundation Server, IE Developer Tools, XBox, Socl, Adobe Digital Publishing Suite.


Ízlés: Milyen enkódolást használ az engine?

Vincze Márk: Az AUT-on fejlesztett multiplatform projektekben UTF16 enkódolással tároljuk a stringeket a memóriában, ez volt az, amit a platformok legjobban támogattak. Sajnos nincsen olyan szabványos string típus, ami garantáltan 16 bites egységeket kezelne minden platformon (az std::string 8 bites egységeket, a wstring pedig Windowson 16, Linuxon 32 bites egységeket tárol), ezért erre egy saját típust készítettünk, ami a basic_string template specializációja egy 16 bit méretű típussal (unsigned short).

Felhasználó-központú tervezés
 

Koczka: Mi a szabvál tárgy neve?

Nagy Dániel: Felhasználói felületek ergonómiája (VIAUAV10). Minden tavaszi félévben elindítjuk.

Vissza a MOBIL AUT 2014 főoldalára