imagazin arrow2-left arrow2-right arrow2-top arrow-up arrow-down arrow-left arrow-right cart close dossiers education fb instagram menu notification oander rss rss-footer search service shuffle speech-bubble star store stores tests twitter youtube

A jövő megérkezett!

Az Apple bemutatta az iPhone X-et

Magyar iOS-fejlesztők: Romhányi József


Jó lett volna, ha sorozatunknak ez a 69. része, jól passzolt volna a most bemutatkozó fejlesztőnk életkorához. Bizony, 69 évesen is meg lehet tanulni Swiftben programozni. Ismerkedjetek meg Romhányi Józseffel.

Sokan mondják, hogy a fiataloké a világ. Erre most rácáfolunk, ugyanis egy 69 éves fejlesztőtől kaptunk levelet, aki beleszeretett a Swiftbe és meg is tanulta ezt a nyelvet.

Nem is húzzuk tovább, olvassátok hazánk egyik, ha nem a legidősebb iOS fejlesztőjének sorait. Ja és már most szólunk, hogy töltsétek le a játékot, tiszteletünk jeleként szeretnénk feltolni a Top 10-es listába!

 

Szervusztok!

Romhányi József vagyok, 69 éves szoftverfejlesztő, nyugdíjas. Valamikor hardveresként kezdtem, aztán beleszerettem a programozásba. Először assembler nyelven programoztam, aztán hosszú évekig Cobolban, majd C, Pascal és Java következett. Végül 10 éven keresztül adatbázis kezelővel (Aqua Data Studió) dolgoztam. Amikor közeledett a nyugdíjba vonulás ideje, el kellett döntenem, hogy mivel fogom tölteni nyugdíjas éveimet.

Akkoriban (2014-ben) már több éve iPad és iPhone tulajdonosként ismertem és szerettem az Apple termékeit, ezért elég kézenfekvő volt a döntés: iOS-re fogok fejleszteni. Vásároltam egy MacBook Prót és elkezdtem az objectiv C-t tanulni. 3 hónap kemény (esténkénti) munkával eljutottam odáig, hogy volt egy iPhone-on futtatható játékprogramom. Mivel a felmerülő problémákkal (eleinte rengeteg volt…) kapcsolatban senkit nem tudtam megkérdezni, a Google- ben kerestem a válaszokat. A trükk abban volt, hogy angolul kellett kérdezni, és akkor MINDEN kérdésemre megtaláltam a választ, leggyakrabban a Stackoverflow-ban.

Ez 2014 tavaszán volt… És jött a 2014-es WWDC. Az Apple bemutatta a Swift programozási nyelvet. Szerelem első látásra!

Kezdtem előről a tanulást, de ez egy nagyon érdekes időszak volt. Ideje volt kiválasztani, milyen játékot szeretnék írni. A választás végül egy kártyajátékra esett. Nem akartam egy 1000-ik kártyaklónt csinálni, ezért egyrészt “virágos” kártyákat csináltam, másrészt a kártyák mozgatását oldottam meg másként.

Na itt kezdődtek a problémák…

Egy éve már majdnem készen voltam a játékkal (akkoriban 7 szinten lehetett játszani), amikor rájöttem, hogy túl egyszerű, túl hamar unalmassá válik. Akkor kitaláltam, hogy ne csak egy, hanem 1, 2, 3 vagy akár négy paklival is lehessen játszani. Azt hittem hogy elég univerzálisan programoztam, elég, ha a megfelelő paramétereket megváltoztatom és már kész is.

Na itt kezdődtek a problémák…

A játék lényege, hogy egy játékmezőre (amely mérete 3×3 – tól 10×10 – ig terjedhet) bizonyos számú kártyát rak fel, ezeket kell lefelé csökkenő sorrendbe rendezni és a fenti üres gyűjtőkbe helyezni.


Ha megérintek egy kártyát, majd valamerre húzom az ujjamat, akkor egy vonal indul el ebbe az irányba, zöld vagy piros szinű. Ha falnak ütközik, akkor visszatükröződik (max. 5-ször). A vonal akkor lesz zöld, ha olyan kártyának ütközik, amely egyesíthető a kiinduló kártyával (pl. J – Q, ld. a lenti képen).

Az ujjam felemelése után a kártya végighalad a vonal által kijelölt útvonalon és egyesül a célkártyával

szőrös cső

Ha a játékmezőn kevés kártya maradt (ez formátum függvénye, pl. 3×3 formátum esetén minden lépésnél) új kártyákat rak a már fent lévők mellé. Mindig olyan új kártyákat rak fel, hogy a játék folytatható legyen (lehetséges lépések száma > 0).

A probléma az volt, hogy több pakli esetén előállhat az un. “szőrös cső” effektus, azaz miután bizonyos kártyákat egyesítettem, a játék befejezhetetlenné válik. Először nem is értettem, miről van szó. Aztán szép lassan rájöttem, hogy mi a probléma, de nem tudtam kiküszöbölni. Egy szó mint száz, majd egy évembe telt, amig sikerült erre a problémára megoldást találnom… Ehhez kellett írnom egy teszt modul, amely nagyon gyorsan le tudott játszani egy játékot. Kb. 10000 játék megoldása után sikerült a játékmező tökéletes leképezese és ezzel a hibalehetőségek kiszürése.

A játékhoz csináltam egy kisérőzenét is (többek szerint kifejezetten idegesítő, de hát izlések és pofonok)

Közben egész jól megtanultam a Swift nyelven való programozás csínját-binját. A játék pillanatnyi állapotának elmentéséhez szükség volt egy adatbázis kezelőre. Először a Core Data-t használtam, de egyáltalán nem voltam vele megelégedve. Nagyon nehézkesnek találtam. Aztán egyszer olvastam a Realm-ról, és rájöttem, hogy ez kell nekem! Ezt majdnem ugyanúgy tudom használni, mint régen az Aqua Data Studiót.

A játék sikeres befejezése után megjelenik egy gratulációs képernyő, ami a lejátszott játék főbb paramétereit ismerteti. Új játék választása esetén a küvetkező szinttel folytatja (a fenti példa esetén a 7. szint következik) . A játék részletes leírása a itt található.

A játék 4 nyelvet ismer, angol, német, magyar és orosz.
Az alábbi képeken a Beállítások menü és a új játékos nevének megadása látható.

A játék az App Store-ban a Flying FlowerCards néven található, ingyenes.

Érdemes kipróbálni a verseny üzemmódot, ami akkor aktiválódik, ha legalább 2 játékos található ugyanabban a WIFI vagy Bluetooth hálózatban. Mindenkinek ajánlom.

Szerk: Ahogyan az iMagazin csapata is ajánlja! Töltse le mindenki, toljuk fel a Top 10-be az appot! – Handras

Mac akció
Apple Inc. (AAPL)

Ezt már olvastad?

A Sirinek ez is az egyik baja, hogy mindenki a célközönség. Valószínűleg hatékonyabb lenne, ha először jól működő modulokat hoznának létre egy-egy funkcióra szabva.

Miért nem ismeri anyanyelvünket az Apple virtuális asszisztense? ... - Klikk ide!