Az Android programozás miért ennyire borzasztóan bonyolult?

Az Android programozás miért ennyire borzasztóan bonyolult?
2022-10-09T17:45:49+02:00
2022-10-12T20:48:14+02:00
2022-10-17T02:25:50+02:00
  • Abban egyet tudok érteni hogy a mobilfejlesztés valószínleg nem ideális kezdő programozóknak tanuláshoz...
    Mutasd a teljes hozzászólást!
  • Szia!

    Ha natív Androidot akarsz, akkor érdemes egy pillantást vetni a Basic4Android-ra (B4A), nekem nagyon adta anno (2-3 éve). Egyszerű, gyors, nagyszerű. Nevetségesnek hat, mert egy Basic-alapú OOP nyelven kell programozni, ellenben nagyon gyorsan és egyszerűen lehet vele fejleszteni. Anno 1 nap után saját grid-komponenst fejlesztettem, mert 20 év Delphi után nagyon kézre állt. Ja, teljesen ingyenes.

    Best Free IDE for Basic Native Android Development

    Ugyanitt van B4I (IOS), B4J (desktop) és B4R (Arduino) fejlesztőeszköz, amik közül egyedül a B4I a fizetős, a többi teljesen ingyenes. Hatalmas community van mögötte, szinte mindenre van kész megoldás. Én anno még fizettem érte - kemény 100 USD - , de azóta közkinccsé tette a fejlesztője, de azóta is fejlesztve van, mert 2-3 havonta jön az email, hogy új verzió jött ki.

    Sok sikert! :)
    Mutasd a teljes hozzászólást!
  • Nincs értelme próbálgatnom azt hiszem, én ezt a dolgot elengedem. Most például egy sima drag and dropot próbáltam megcsinálni, semmi mást, csak annyit, hogy ha elkezdek vonszolni egy sima ImageView-t, akkor legalább történjen valami. Másfél órányi szenvedés után úgy döntöttem, hagyom a búsba. Borzasztó, hogy mennyi munkára van szükség egy ilyen tök alap dologhoz. El sem tudom képzelni, mi szükség van például arra, hogy az adott item MIME típusával foglalkozzak. Meg a clipdata, meg dragshadow, meg hogy mire jó a getTag()... nincs már nekem türelmem ilyesmikhez.
    Egyébként az okostelefont, mint platformot sem szeretem, amikor csak lehet, inkább gépet használok. Borzasztó kényelmetlen bármelyik okosteló egy géphez képest.
    Mutasd a teljes hozzászólást!
  • Xamarin-t próbáltad már C#-al, ingyenes VS community-vel? Részletes doksik az MS honlapján. Eléggé tiszta MVVM arhitektúra Xaml leírókkal, vagy kódból is hozhatsz létre vezérlőket...
    Illetve lehet, hogy most már ne is ezt próbáld, hanem az utódját, a MAUI-t, habár az most jött ki, nem tudom, mennyire kiforrott (én még nem próbáltam, mert mostanában nem kellett mobilra fejlesztenem hálaazégnek).
    Mutasd a teljes hozzászólást!
  • Ja, a legutolsó projektem egy nem túl bonyolult hotkey-es program volt, pure Winapi-val, C-ben. Az sem egy leányálom, de az MSDN teljesen jól össze van rakva, kereshető, szűrhető, könnyen átlátható, és nagyon sok függvényhez van példakód. Ehhez a képest az Android API reference oldala egy tipikus "mobile first" szemléletben készült vacak, amit gépen borzalom olvasni, sokkal lassabb mint az MSDN, görgetésnél idétlenül ugrál, példakód pedig szinte semmihez sincs, mert minekaz.

    És amikor elkezded letölteni az Android Studiót, akkor kapsz egy jelvényt(??), amivel valamit - nem tudom, micsodát - lehet csinálni, ha bejelentkezel. De ez most megint mi? Kapok egy jelvényt azért, mert képes beírni Google-be, hogy "android studio download"? És mit csináljak vele? :D
    Komolyan, ilyeneknek kell lennie a világ vezető mobil operációs rendszerének fejlesztői oldalán? Jelvények? :D

    Borzasztóan szomorú, hogy olyan cég uralja a mobilpiacot, aki ilyen developer oldalt képes csinálni. És ő csinálja a Material designt, elméletileg nekünk, mobilos fejlesztőknek hozzájuk kellene igazodnunk...
    Mutasd a teljes hozzászólást!
  • Hát, én szerintem befejezem ezt az egészet.
    Programoztam DOS alá Pascalban, Basicben, és C-ben, Linux alá C-ben, Valában, webre PHP-vel és JS-sel, illetve Javával és Darttal, de egyikkel sem szenvedtem annyit, mint natív Androiddal. Nem vagyok programozó, csak szabadidőmben csinálom, és úgy gondoltam, hogy ha már úgyis a programozás a hobbim, akkor legalább keressek egy kis pénzt vele. De inkább másba ölöm majd az energiáimat.
    Mutasd a teljes hozzászólást!
  • Ez a Gradle is olyan, hogy ha a doksi azt mondja, tegyem bele ezt meg ezt a sort, akkor beleteszem, de igazából fogalmam sincs, hogy hogyan működik az egész, a függőségek hogyan vannak, a domainek meg minden... nincs már időm meg energiám ezt is megtanulni, pedig én szeretem mélyebben is átlátni, hogy ki kivel van és mi mit csinál. De nem fogom megtanulni, egyébként is ágyúval verébre esete, állítom, hogy az appok 90%-a a Gradle tudásának 90%-át sosem használja ki.

    Flutter: Ha a state-be teszel mondjuk egy dialog-ot egy formmal, és a dialognak adnál egy GlobalKey<NavigationState>-et, mert mondjuk a formba beírt adat értékétől függően szeretnél módosítani valamit a widgetben, akkor vagy statikussá teszed (ez nem minden esetben működik, mert néha a Flutter azt mondja, hogy már használatban van ez a GlobalKey), vagy két megoldásod van:
    - ValueNotifier-t használsz
    - kihasználod, hogy Dartban van getter/setter, és azt csinálsz benne, amit akarsz

    Ilyenkor a widget.yx = valami azért nem fog működni, mert a dialog a MaterialApp kontextusában működik, nem a state objektuméban, így nem éri el a fieldjeit.
    Mutasd a teljes hozzászólást!
  • Akkor már TypeScript.
    Push notifikációra van hozzá könyvtár.
    Mutasd a teljes hozzászólást!
  • Ha már mobilfejlesztés és ventillálunk: a Gradle az miazmár? :D
    Annyi scriptnyelv és DSL létezik, miért kellett csinálni egy újat? Vagy ha már egyszer van, miért nincs egy normális doksi?

    A Flutter-rel kapcsolatban: Miért szeretnél a Widget-ből a State objektumra hivatkozni? Én mostanában kezdtem el vele játszani, de mindig csak a state object felől kellett hivatkoznom a widget referencián keresztül a widget-re. A StatefulWidget-ben csak adatokat tárolok, logikát se tettem még bele soha.
    Mutasd a teljes hozzászólást!
  • Vicces, de a vége lehet, hogy tényleg az lesz, hogy Javascripttel fogok szüttyögni React Native-ban. De az látom, hogy a React is afelé a state management felé mozdul el, ahol a Flutter is tart, illetve nem tudom, hogy natív kód nélkül képes-e olyanokra, mint pl. push értesítések megjelenítése...?
    Mutasd a teljes hozzászólást!
  • Legutoljára a Flutternél olvastam ezt, hogy "makes it easy". A Flutter azért jó, mert ilyen jóképű fiatal fejlesztők olykor afféle humorosnak szánt, de valójában idétlen amcsi stílusban készítenek hozzá videókat. És majd' minden videóban ott van, hogy "méksz ít íízíííí". Miközben pedig - aki Flutterezett már, azt tudja -, hogy a Flutter, bár OOP alapokra épül, kapásból telibevágja az OOP-t azzal, hogy elkülöníti a stateful és stateless widget típust. A stateless immutable, a stateful pedig úgy néz ki, hogy van egy state class, ami az objektum állapotát tárolja, és van egy widget class, ami pedig a megjelenítését. És ebből borzasztóan bonyolult kerülőmegoldások alakulnak ki, ugyanis a widget class-ból nem lehet direktbe hivatkozni a state class-ra. VariableChangeNotifier lófaxokat kell csinálni, ilyen hátulról mellbe módon meghívni a setState metódust, és az egész a végére egy orbitális nagy káosz lesz. Ha már háromnál több widgetet van, egy katasztrófa az egész. Nem csoda, hogy a Flutter nem terjedt el; nem is fog. A Darttal együtt egy marginális fejlesztői réteg játékszere lesz, és marad is.
    És az egész Flutter gyakorlatilag a state management-re épül, miközben ha mélyebben belemegy az ember, látszik, hogy már maga a tutorial is külső csomagot ajánlj a state management-re, a beépített megoldás helyett. Nyilván azért, mert egy elbaltázott, használhatatlan vacak az egész.
    Mutasd a teljes hozzászólást!
  • - nincs hozzá normális tutorial
    - de tényleg nincs egy koherens, jól összerakott, aktualizált tutorial
    - az a kevés is, ami van, elavult vagy hibás
    - az API dokumentáció egy kalap kaki, semmi sincs benne normálisan leírva
    - egyébként tele van külső linkekkel
    - és 404-es linkek is bőven vannak benne
    - és le is van maradva folyamatosan
    - az Android Studio egy bloatware nemmondom meg micsoda
    - az emulatora az összes létező emulator közül a legerőforrászabálóbb és leglassabb

    Egy nyomorult appbar létrehozása is komoly feladat, miközben ennek egy apró lépésnek kellene lennie. Pl ez: https://developer.android.com/develop/ui/views/components/appbar
    1. Eleve ott indít, hogy appcompat v7 library. Oké, akkor olvassam, mi a fene az az appcompat library és mi a bánatra jó az nekem (kit érdekel?).
    2. De amúgy ezen kívül még ott van az Actionbar, ami alapvetően ugyanaz, mint az Appbar, csak más (kit érdekel?).
    3. Na mindegy, lépjünk túl ezen, setup the appbar. Úgy kezdi, hogy "app bar features have gradually been added to the native ActionBar over various Android releases. As a result, the native ActionBar behaves differently depending on what version of the Android system a device may be using.". Na b+... de akkor miért nem ezzel kezdi?? Miért nem mondja azt, hogy ne használjam ezt, mert "native ActionBar behaves differently depending on what version of the Android system a device may be using"...
    4. Oké, akkor lépjünk át a toolbarra. Ez úgy kezdi, hogy "A Toolbar is a generalization of action bars for use within application layouts." És ez meg átlinkel az action barra, amit megintcsak el kell olvasnom...
    5. És akkor már elszabtam egy csomó időt rá, de még sehol sem tartok, mert még fogalmam sincs arról, hogyan kell egy nyomorult appbart felállítani.

    A kedvenc kifejezésem: "makes it easy"
    Ha ezt látom, akkor már tudom, hogy onnan menekülni kell.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd