Hirdetés
Új hozzászólás Aktív témák
-
thiclyoon
aktív tag
válasz
Vizinyenyec
#5517
üzenetére
az AsyncTask nem deprecated? régebben használtam, de úgy emlékszem kb akkor vált azzá
-
thiclyoon
aktív tag
válasz
bandi0000
#5467
üzenetére
Erre vonatkozott a kérdése: "újraindul az egész cucc a forgatás után és elveszik az alkalmazás teljes állapota", "szóval megoldja a kimentést, visszatöltést bármire amit a memóriában találok"
Persze hogy nem ajánlott, szó szerint ezzel kezdtem a válasz kifejtését#5468 fatal: én nem vitatkozom ezzel az állítással, elég volt a tanároktól meghallgatni
-
thiclyoon
aktív tag
válasz
Kutyauto
#5465
üzenetére
TL;DR: singleton viewmodel.
Igen, tudom, hogy ez antipattern - viszont egyetemen is ezt tanítják (nem mintha ez érv lenne persze...). Androidon jelenleg nincs jobb / szebb megoldás erre (tudtommal / tanáraim tudtával) - a saveinstancestate nem erre van -, úgyhogy sajnos ezzel kell menni. De ha valaki járatosabb a témában, ne tartsa magában
és persze nagyon könnyű rosszul használni, lásd például ezt (ez pont nem android, de a lényeg ugyanaz) -
thiclyoon
aktív tag
válasz
Kutyauto
#5459
üzenetére
Saját, több külön projektben újra és újra felhasználni tervezett osztályokat, funkciókat hová kell tenni?
Meg is válaszoltad
ha ugyanúgy akarod őket behúzni, mint más függőségeket, akkor pontosan ugyanúgy kell őket kezelned. De amúgy valahogy úgy néz ki ez a legtöbb esetben, hogy ha organikusan növi ki magát, akkor
- elkezded észrevenni az ismétlődéseket, újrahasználható részeket (ezzel meg is vagy),
- ezeket összeszeded, bővítgeted, és projektenként testreszabod. Itt még általában csak egy fájlhalmazról beszélünk, amiket manuálisan behúzol a projektekbe. Érdemes több projektben kipróbálni őket, hogy 1, hasznosak-e annyira, hogy tényleg ki kell őket szervezni és 2, a hibák jobban előjöjjenek -> érdemes lehet teszteket is írni, ha olyan kódról van szó,
- a fájlhalmaz bővülésével jöhet a gondolat, hogy ha már nem 2 függvényről van szó, akkor érdemes lenne verziókezelni -> összeszeded a dolgokat, és
- publikálod a kódot. Erre van sok leírás, például ez jónak tűnik. Elsőre bonyolultnak tűnhet, de nem nehéz; GitHub kell hozzá és ennyi igazából -
thiclyoon
aktív tag
válasz
Kutyauto
#5455
üzenetére
Ha minden igaz, a
GuestTheNext: Inta játék állapota. Én áttérnékenumhasználatára (bár azInttel is megoldható minden, csak szebb, könnyebb lenne előbbivel - ha nem ismered, nem gond, maradhat, ahogy van), és 4 állapotot hoznék létre: egyik lép, másik lép (ez megvolt nálad is 0 és 1 értékekkel), egyik fog jönni (az animáció után), másik fog jönni (az animáció után)(Nem tudom így mennyire világos, majd írok pszeudokódot ha úgy van. A koncepció az, hogy nem a tappolhatóságot állítod, hanem állapotokkal modellezel; amint tappolt a user, átállítod olyanra, hogy ne érdekeljen, ha tappol)
-
-
thiclyoon
aktív tag
válasz
Dilikutya
#5443
üzenetére
Ismerem az alkotókat
nincs közöm a projekthez, de valamennyire rálátok a dolgokra. Van konkrét kérdésed esetleg? Általánosságban nehéz beszélni, nagyon sok minden függ tőled (hogy csak két végletet említsek, nem mindegy, hogy a pár kommenttel feljebb is előjött "szeretném átképezni magam, mit tegyek?" szintről indulsz, vagy van 2 mérnöki / IT diplomád, eddig backendeztél, és mostantól szeretnél frontendezni)
Amit mindenképp érdemes tudni - bármilyen szintről is jön az ember -, hogy egy online kurzus elvégzése után (legyen az bármilyen jó / rossz) nem lesz fejlesztő, meg a cikkekben sokszor clickbaitelt "milliós fizetések" sem fognak bekopogni.
Azért is krédezem a fentit, mert ha valaki az alapoktól indul, és nagyok az elvárásai (nem saját hibája miatt, ahogy említettem, a hírekben is például gyakran felfújt dolgokat lehet látni), az - szerintem - minden online tanfolyamban csalódni fog, és az elköltött 3,5 forintot is bánni fogja. Ha meg profi / hozzáértő, akkor nem gondolnám, hogy egy magyar nyelvű kurzusra akarna támaszkodni. De mindig van edge case, olyan kivétel, amire nem is gondolnék
Nem rontva az üzletet az szerintem mindenki számára nyilvánvaló, hogy ha munkaszinten akar ezzel foglalkozni valaki, akkor az angol elengedhetetlen számára (ha valakinek ez új, akkor most már tudja
). Angol nyelvű kurzusból meg rengeteg van, ahol nem csak egy random magyar fórumozó véleményét tudod kikérni. Teljesen véletlenszerűen felcsaptam a Udemy-t, beírtam hogy "Angular", az első találat 176922 értékeléssel rendelkezik és 646944 tanuló vette meg. 177k értékelést átolvasni persze végtelen idő lenne, de van hozzá x/5-ös szummázott értékelés is nyilván. Ehhez meg nem árt tudni, hogy az Udemy trükkös, és ki kell várni az akciót - de ha még úgy is sok lenne a kb. 15 dollár / nincs kedve az embernek kivárni, akkor nem kell sok leleményesség a let's say virágbolti verzióhoz. -
thiclyoon
aktív tag
válasz
prime_adam
#5437
üzenetére
Szerintem a Stripe-ot így nem lehet megoldani (vagy szét kell hackelni valahogy), ez tipikus olyan SDK-nak tűnik, ami felrak egy gombot, a többit intézi (google login is hasonló). Biztos van rá kerülőút / "okos megoldás", de gondolkodni kell rajta...
-
thiclyoon
aktív tag
válasz
prime_adam
#5434
üzenetére
Offban írom, mert ezek natív iOS-es tapasztalatok - közel sem biztos, hogy Androidon is pont így van minden, de a nullánál talán több:
- normál böngésző kezelését a mobilra fejlesztett app kódjából lehet megoldani,
- appon belüli vásárláshoz pedig le kell fejleszteni (legalább) azt a részt mobilra is, be kell húzni az adott SDK-t (elvileg ez az Androidon), másképp nem oldható meg szerintem, amit írtál,
- offline működéshez pedig itt lehet érdemes elindulni, ez is kódot igényel tudtommal.Ahogy írtam, nálam iOS tapasztalat van (de egy székkel odébb a kollégám csinálta meg ugyanezt Androidra). Nálunk könnyítette a helyzetet, hogy nem kellett se offline működés, se fizetéses funkció, így csak a böngésző alakítása kellett. Valamint azt még érdemes lehet tudni (például azért, mert lehet, hogy egy év múlva meg iOS-re szeretnétek áttérni), hogy az Apple korábban elég szigorú szemmel nézte az ilyen (egy WebView-ba csomagolt) appokat, és nem is nagyon engedte ki. Ma már jobb a helyzet, de ez is egy kockázat lehet
-
thiclyoon
aktív tag
Ahogy írod (kivéve ez: "az összes, Balaton-nal kezdődő településnevet vissza kéne adnia" - ez nem igaz). A link szerint ezt az API-t akkor használd, ha teljes névre keresel ("Balaton", "Balatonfüred", és nem "Balatonfü"), és egy eredményre számítasz. Minden másra ott az Autocomplete.
-
thiclyoon
aktív tag
persze mivel
"binding.btnLogin" != "btnLogin". ezzel annyira akartam rávilágítani, hogy ha megvan a (vagy egy) működő megoldás (ami itt a binding.-os lett), akkor minek rágódni azon hogy a másik nem működik? nem működik és kész, én még nem láttam olyan kódot amúgy ahol binding. nélkül működött volna. örülni kell hogy megvan a megoldás és haladni tovább, én úgy gondolom nem szabad fennakadni az apróságokon. számomra ebből annyi lenne a tanulság, hogy "a view-kat binding. előtaggal érem el innentől kezdve, noted", és kész. a fenti mind személyes vélemény, off vége -
thiclyoon
aktív tag
Kezdem nem érteni (én sem)
#5400-as hozzászólásban már működött. az hogy btnLoginként vagybinding.btnLoginként éred el, szerintem ne zavarjon, ez a téma is nagyon sokat fejlődött csak az elmúlt 2,5 év alatt (java-s findViewById, butterknife, kotlin synthetic, view binding + data binding), simán lehet hogy az oktató lehagyott valamit(amúgy bme infó msc-n is binding.xy-ként tanítják ha ez számít valamit
) -
thiclyoon
aktív tag
válasz
urandom0
#5398
üzenetére
sima viewBinding esetén
binding.btnLogin-nal kellene elérned. nem használtatok mást a kurzus során? (kotlin synthetic, butterknife vagy bármi hasonló? tudom ezeket már nem szokás, elavultak, de engem a btnLogin elérése binding nélkül eléggé a syntheticre emlékeztet)az xml fájlban 100% hogy van "btnLogin" string? (
android:id="@+id/btnLogin") egy typo és oda az egész
jobb megnézni biztos ami biztos(amúgy ki tartja?
) -
thiclyoon
aktív tag
válasz
izeke111
#5385
üzenetére
Nem ismerem, viszont a leírás alapján ez a GitHub Actions-ben használható. Az pedig nem szükségszerűen kerül bele az alkalmazásodba, tudomásom szerint ez egy CI tool.
Itt találtam egy licenct ami szerintem ide tartozik. Mivel a Commercial use szabad, így én nem látom, hogy ezt egy bármilyen appban miért ne lehetne (de ez semmilyen szinten sem jogi tanács
). Hivatalosan kell License and copyright notice, ami neked semmibe se kerül. Ami a GitHubon van amúgy általában felhasználható bizonyos keretek között - legtöbbször olyanokat várnak el, mint ami a fentebb linkelt licencben van. -
thiclyoon
aktív tag
én eddig csak android (java & kotlin), ios (swift) és web (js) platformokon használtam, de ezek alapján mennie kell php-ból is. hol akadsz el?
nem biztos hogy a legszebb megoldást lehet vele megcsinálni, de a példa alapján működőképesnek tűnik
-
thiclyoon
aktív tag
Aha, a firebase-nek vannak jól használható részei, a real-time pl. ilyen
kisebb appokhoz nagyon hasznos, fel tudja gyorsítani a fejlesztést, de nagyobbakhoz szerintem érdemes a használandó funkcionalitásokat megvalósítani. Kivéve crashlytics. A crashlytics-et ne írd meg from scratch, az úgy jó ahogy van
-
thiclyoon
aktív tag
Van ebben igazság. Androidon kb. 99ft a legolcsóbb iap (fizetős app teljesen felejtős, az emberek nagyon nagy része nem fog fizetni; a reklámból a bevételhez meg sok felhasználó kell), és egy példa nem példa, de megpróbáltam egy appot kiadni, aminél ez a 99ft (vagy ami a legkisebb volt) beállítva. Jó, nem volt egy zseni app, de a versenytársakhoz képest többet kínált, és volt egy hét / hónap (már nem tudom melyik) ingyenes próbaidő. Az eredmény a fenti hsz ismeretében borítékolható
Persze ez nem jelent semmit, bárki lehet milliárdos egy androidos appból is nyilván, ez csak egy a tapasztalataim közül. -
thiclyoon
aktív tag
Miből?
de amúgy mindenből meg lehetIgen, fel tudod tölteni (ennek van egy minimális, egyszer díja, legutóbb amikor néztem 25 euró volt). Viszont ez keveseknek jön be, nehéz nagyon szakítani úgy, hogy te egyedül összeraksz egy appot. A gyakorlatban inkább az a jellemző, hogy van egy viszonylag nagyobbacska cég (lehet 5 főtől elkezdve bármi, meg akár alatta is, de egyedül nehéz lesz), akik ritkább esetben vagy csinálnak egy saját terméket (ahogy írtad), ilyen pl. a jófogás, vatera (valamelyiknek van appja azt tudom
), vagy szoftvereket gyártanak más, nem erre szakosodott személyeknek, cégeknek (pl. banki appok tipikusan ilyenek, mert egy bank nem fog x főnyi fejlesztőt fenntartani alapvetően, inkább kiszervezi). Ennek a cégnek lehetsz az alkalmazottja, tulaja. Emellett persze (egyéni) vállalkozóként is lehet csinálni, akkor te vagy maga a cég (ha meg nem egyéni, akkor meg a fenti vállalatot vezeted / tulajdonolod). Ilyen lehetőségek vannak nagyjából, biztos van más út is, de ebből kiindulva lehet gondolkodni szerintem. -
thiclyoon
aktív tag
szerintem ennyi alapján alapvetően a válasz - úgy, hogy te nekiállsz, és megpróbálod kideríteni a szükséges infókat - inkább nem, de ez nagyban függ attól, hogy mennyire van obfuszkálva az apk és hogy mennyire ért hozzá a megfigyelő (jelen esetben te). ha a fejlesztő nagyon figyelt erre, akkor nagyon-nagyon macerás is lehet a hálózati kommunikáció megfigyelése, viszont ha nem, akkor úgy gondolom, hogy alapvető infók azért könnyen kideríthetőek (mondjuk itt már kérdés, hogy ez mennyire számít szoftver feltörésnek / biztonsági rés kihasználásának, de ha tied a szoftver, akkor nagy eséllyel senkit nem érdekel)
-
thiclyoon
aktív tag
a példák nehézségét szemléltettem vele, ahol a legkisebb szám jelenti a legkönnyebb, a legnagyobb pedig a legnehezebb feladatot (itt a legnehezebbet a kérdező szintjéhez próbáltam belőni természetesen). tehát nincs tudományos alapja, csak az appokat kategorizáltam valami rendszer szerint
-
thiclyoon
aktív tag
válasz
Csaby25
#5340
üzenetére
(Szerintem) nehezedő sorrendben néhány ötlet pár sorral lejjebb, bár gyakorlatilag az első 1-2-n kívül az összes a végtelenségig elbonyolítható
pluszpont ha kell hozzá szerveroldali komponens is, és azt is te csinálod (a firebase az mondjuk fél-pluszpont). A Tier 5 már csak egy bónuszsor részemről: ha össze tudsz rakni egy épkézláb chat appot, akkor már nagy gond nem lesz ezen a szinten (viszont a Tier 3-4 alatt meg tényleg nem látom értelmét "mutogatni" az appot). Na meg sok függ attól, hogy kezdő / újrakezdő / karrierváltó vagy-e, és akkor még nem is említettem, hogy mindenki mást ért az adott szenioritási szint alatt.(Szintén személyes vélemény, de úgy gondolom, az ilyen portfólió-jellegű építkezésnek itthon nem sok előnye van, legalábbis én nem nagyon tapasztaltam ilyet. Talán egyszer fordult elő velem, hogy egyáltalán ránézett bárki (csak a kódra, nem is az appra).)
Tier 1: countdown timer, tic-tac-toe, catch the kenny (amelyiket nem ismered, keress rá, valószínűleg úgy egyértelmű lesz)
Tier 2: todo lista, bevásárlólista, notes
Tier 3: kvíz app, kalóriaszámláló
Tier 4: chat app, github timeline böngésző
Tier 5: online shop -
thiclyoon
aktív tag
Legalább a google is elkezdi átnézni az appokat, nem csak az apple
épp ideje volt már. és itt nem az átnézés minőségéről mondtam véleményt, csak magáról a tényről, hogy legalább elmozdultak abból az irányból, hogy bárki bármit feltölthet, ráadásul ingyen, ami ugye a másik platformon nagyon nem adott (és akkor még a third party letöltési helyeket nem is említettem). egy szó mint száz ezzel első tippre kevesebb káros app lesz, de a példádból kiindulva átestek a másik oldalra, túllőttek a célon. szerintem a jövőben majd beáll ez egy egyensúlyra -
thiclyoon
aktív tag
50 alatti android fejlesztő?
ne viccelj, kis túlzással ennyit gyakorlatilag én egyedül össze tudnék kapni (persze nem azonnali munkára, csak lista szinten)
ha valóban 50-100 ilyen fejlesztő lenne, akkor nagy bajban lennének az erre szakosodott cégekszerintem érthető ha egy ilyen magyar hely nincs tele napi élettel, stackoverflow a go-to hely
-
thiclyoon
aktív tag
szerintem (tapasztalatom alapján) igen, Android studioban natívan fejleszteni teljesen más szint mint VS-ben (főleg kotlinban
). Ahogy írtam, utóbbi is megoldható, de én még nem láttam olyan embert aki ezt javasolja (valós projekttel / tapasztalattal a háta mögött) a natív megoldás helyett. A flutter pl tudtommal újabb / szebb / jobb mint bármely crossplatform cucc, de még ezt se szeretik annyira a natívhoz viszonyítva. Ezt viszont csak hallomásból tudom, nem ismerem a fluttertVannak amúgy más jellegű megoldások is, pl ez; ezek már olyanok amik bár hobbi projektben érdekesek lehetnek, de ha határidő van, stb, akkor neccesek általában. Hobbiprojektbe meg mehet bármely crossplatform is, ahhoz kb mind elég érett. Max néha előfordul hogy egy funkcióra 2 óra helyett mondjuk 5 kell vagy hasonló, de ha hobbi, akkor ezt még élvezheted is, meg "egzotikusabb" tapasztalatot is ad. Szóval vannak érvek - ellenérvek mindkét oldalon igazából
-
thiclyoon
aktív tag
használható a .net kód amúgy valóban, kérdés, hogy megéri-e azt az irdatlan méretű szenvedést, amit produkál ez a haszon. ha nincs egy nagyon kiforrott többszázezer soros egyedi .net fejlesztés a talonban, akkor én biztos nem mennék ilyen irányba, és nem is javasolnám senkinek. persze ha a főnök találta ki, akkor ez van, de akkor a büdzsét is ehhez kell igazítani
-
thiclyoon
aktív tag
Valószínűleg nem leszek népszerű a véleményemmel, de szerintem a leggyorsabb még mindig az Android Studio. Egyre több csodamegoldás van (elég csak a "régebbiekre" gondolni, Xamarin, React stb.), szinte már-már naponta születnek újak - és biztos meg is van nekik a helyük -, viszont szerintem ennek az az ára, hogy egyik sem túl kiforrott, vagy éppen a technológiában származó hátrányt cipel magával az "új" megoldás.
Amit írtatok feljebb, az konkrétan még egy PWA-val is elérhető (ez nem a reszponzív szinonimája, ez egy konkrét technológia), de ha még a "melósabb" Androd Studiot is választjátok, akkor is minimális idő alatt megvan az egész, amennyiben csak a weblap megjelenítése a cél, vagy egy oda-vissza navigáció.
Az android fejlesztés amúgy nem nagyon tér el a mac / windows vonalon (default az Android Studio, aztán van sok más eszköz is); az iOS az, aminél sok megkötés van, és ami miatt a fejlesztők 99+% macet használ az utóbbihoz.
-
thiclyoon
aktív tag
válasz
robi212
#5268
üzenetére
[link] , [link] , [link]
"By default, the iOS allows character limit anywhere between 150 – 230 characters and Android notification tray allows anywhere between 450 – 650 characters. However, if you wish to get the best response to your push notifications, we strongly recommend a message which is not longer than 40 – 50 characters. [...] Essentially, keep the length of your push notifications short."Én már iOS oldalról vagyok (nincs aktív iOS topik itt tudtommal, sajnos), szóval ebben tudok segíteni (vagy ha van konkrét Android projekt, akkor azt tudom tesztelni, de magamtól nem írok ilyeneket már), szóval innentől minden iOS-re vonatkozik. Hivatalos leírás: [link]. Röviden ez annyit jelent, hogy by default 1-1 sornyi title-subtitle (általában csak az egyiket használjuk), és 2-4 sornyi description lehet. Az, hogy ez karakterszámban mennyi, az eszközfüggő - a két véglet, amit a többség támogat, az a régebbi iPhone SE, és a legnagyobb eszköz (most éppen azt hiszem iPhone 12 Pro Max). Ehhez nem árt, ha van nálatok konkrét eszköz, egy kb. közepes telefon (iPhone SE 2) esetén 1 sor kb. 45 karakter, és 3 sort gond nélkül kiír egyből. Tableten megint más a helyzet nyilvánvalóan.
Ez a standard működés. Kis pluszmunkával bármilyen értesítés elkészíthető (ugyanaz a komponens kell hozzá, mint egy képernyőhöz, UIViewController, a fejlesztők tudni fogják miről van szó), lásd pl. [link], itt mozgás közben is láthatjátok. De ez fontos, hogy csak akkor fog előjönni, ha az user hosszan rányom - én mint aktív iOS használó felhasználói oldalról sosem, vagy csak a legritkább esetben nyomok rájuk hosszan. UX oldalról fontos lehet (esetleg lehet erre utalást tenni a kisebb állapotban lévő értesítésben, hogy kb "nyomj hosszan, ha látni akarsz valamit", de ilyet is ritkán láttam eddig
Remélem valamennyit tudtam ASAP segíteni, ha van konkrét kérdés még / amit nem válaszoltam meg, írjátok meg, hátha akár én akár más tud még valamit mondani. -
thiclyoon
aktív tag
válasz
kornyiktamas
#5242
üzenetére
Mennyire perzisztensen akarod tárolni az adatokat?
- ha nem kell őket később módosítani (a felhasználó szemszögéből), akkor lehet, hogy a legegyszerűbb egy kódban megadott "adatbázis",
- ha kellhet őket módosítgatni, vagy sok adatról van szó, akkor egy lokális adatbázis lehet a társad, pl. a Room-mal meg tudod oldani szépen,
- ha pedig módosítani is kellhet őket, vagy sok adatról van szó, és még internettel más eszközről is elérhető kell legyen (tipikusan egy többfelhasználós alkalmazás), akkor pedig egy szerveroldali megoldás kell. Ezt vagy egy backendes programozó tudja megoldani (Java, .Net vagy valami hasonló nyelven), vagy ha a projekt nagysága nem indokolja, akkor a Firebase lehet a legkönnyebb megoldás.Ha a fentit el tudod dönteni, akkor a formátum is adott nagyjából: az első esetben egy kódban megadott változó lesz a megoldás, a másodikban szintén, csak a Room-mal kiegészítve, a harmadikban pedig a szerveren nosql-lel lesz kezelve, te pedig a Firebase-zel eléred. Ha az adatbázis felépítése a kérdés, akkor szintén sorrendben: valamilyen kulccsal rendelkező megközelítés; a Room esetében a könyvtár leírása fog segíteni, a Firebase-nél pedig érdemes rendesen átgondolni, mivel a túl sok lekérdezés fizetőssé fogja tenni ezt a megoldást. Egy jó felépítés sokat tud segíteni, ezen érdemes sokat gondolkozni ha idejutsz.
A többi kérdést nem igazán értem, nincs mit tagolni az adatokon, egyszerűen a query amit futtatsz az adatbázison az megadja, hogy milyen változókat tudsz kiírni. Ezeket "transzformálod" egy kiírható formátumban, és ezt meg tudod jeleníteni az appban. Külön feltöltés nem tudom, mihez kellhet - ha az adatok nem módosulnak, akkor elég egyszer, ha pedig módosulnak, akkor minek feltölteni őket többször?
Nem bonyolult, főképp ha az első, legegyszerűbb megoldás elég. Nem az a legszebb megoldás az biztos, de az egyszerűsége miatt megér(t) egy gondolatot.
-
thiclyoon
aktív tag
válasz
[KgP].Robot
#5229
üzenetére
És a telefonban kell legyen sim kártya is (redmi note 4 tapasztalat)
-
thiclyoon
aktív tag
válasz
bandi0000
#5207
üzenetére
nem nagyon, de módosított fájl
Így már nálam jobb a helyzet, viszont eszembejutott a tesztelés közben, hogy nem is igazán tudom milyen fokú lassúság elfogadható androidon, így kicsit nehezebb volt
amit még észrevettem az a .clone() használata, két okból is:
- éles kódban szinte sosem találkoztam még a használatával, valamint
- a calendar egy "nagyobb" objektum (nem performance vagy fizikai nagyság, hanem "sok dolgot tud ahhoz képest, hogy egy cellának odaadod"), így elméletileg szerintem az egyes celláknak nem kellene megkapniuk az egész calendar objektumot, nincs hozzá közük. Így a clone kivehető lenne, ami szerintem egy jó irány lehet: [link]. Ehhez nyilván már az .xml-ben és egyéb .kt fájlokban is át kell írni dolgokat, ezt valószínűleg te jobban átlátod, könnyebben meg tudod csinálni (a módosított fájlban elvileg semmi nem tört el, de erre is ugyanez igaz). A .clone kivételével nálam még jobb lett a helyzet (persze cserébe kb az egész eltört, mivel a napokat nem tudta kiírni rendesen, ezért kell ez a több fájlt érintő átírás) -
thiclyoon
aktív tag
válasz
bandi0000
#5203
üzenetére
Több osztály is hiányzik, a build.gradle sincs meg, így nem tudom reprodukálni a dolgot. [stackoverflow: How to create a Minimal, Reproducible Example]: a lényeg hogy egy olyan kódot érdemes összerakni, ami a legkisebb akadályt gördíti a megoldáshoz vezető útra - engem pl nem zavar annyira ha nem minimális a példa, de szerintem senki se szeretne a hiányzó importokkal szöszölni stb. Nem tudom miért nem akartad az egészet feltenni, ha céges / egyéb privacy van akkor nyilván azokat a részeket vedd ki, de a kód fusson, mockolt adatok, átírt package név stb., ez elég egyszerűen kiküszöböli a fentieket. Az Android Studio ad erre egy egygombos megoldást: File - Manage IDE Settings - Export to Zip file..., vagy keresőben (shift-shift-tel előhozható) egy keresés az "export"-ra. Ez elméletileg kiszedi az ideiglenes fájlokat, outputot ilyesmiket (utána teszt hogy a kiadott zip tartalma fut-e nálad, előhozza-e a hibát). Persze ha más ennyiből megmondja a tutit, én nem állok az útba
Illetve no offense, talán nem hallottad még, ezért írom le: bármilyen programozásról van szó, .docx-et nem illik ilyen célra használni, .txt vagy a kód alapértelmezett kiterjesztése (jelen esetben .kt, .xml) is jó, ezeket mindet tudja olvasni a legegyszerűbb szövegszerkesztő is -
thiclyoon
aktív tag
válasz
bandi0000
#5200
üzenetére
A leírás alapján nem kellene gond legyen, esetleg megpróbálhatod egy erősebb windowsos gépen emulátoron (vagy macen, talán még jobban is megy ezeken) hogy ott is csinálja-e. Én sokáig pl egy már korosodó snapi 625-tel teszteltem, viszont akkor sem tapasztaltam ilyet, komplexebb UI-jal sem. A betöltés után is akadozik a felület? Ha nem, akkor szerintem nincs gond, ha igen akkor viszont valami tényleg félremehetett. Ha gondolod átdobhatod a kódot (ha elég kis részlettel reprodukálható akkor akár ide is beteheted) hogy ránézhessünk mi a helyzet
#5201:
Nem teljesen tiszta, hogy mi a cél: ha csak segítség kell, akkor ide szerintem nyugodtan leírhatod a problémát, ami éppen szembejön. Ha viszont nincs rá időd, akkor ez egy mikro-fizetős projektnek néz ki: a .net kód bonyolultságától függően dobhatsz egy pm-et (c# nyelvvel foglalkoztam régebben, ma már nem), viszont időszűke miatt nem ígérem hogy tudok segíteni -
thiclyoon
aktív tag
válasz
inf3rno
#5178
üzenetére
Hogyan próbálod telepíteni? Android studio-ból, kvázi valós eszközön debugolás-szerűen, vagy csinálsz egy .apk-t, és azt rakod rá, és telepíted valami fájlkezelőből? (utóbbi esetben szerintem kell aláírás, de a nevével ellentétben ez annyi, hogy csinálsz egy kulcsot, és signed apk-ként buildeled)
-
thiclyoon
aktív tag
-
thiclyoon
aktív tag
válasz
inf3rno
#5167
üzenetére
Teljesen ingyenes
[letöltés] -
thiclyoon
aktív tag
Tettem fel nemrégiben többször is. A jelenlegi változatban* nekem egy dolog nem ment simán, ez pedig az in-app purchase. Kicsit szenvedős volt rájönni, hogy a reklám azért nem megy, mert nincs hozzáadva kifizetési számla - ezt is meg kellett találni, hogy hol is kell. + Az első kiadáskor sok dolgon át kell menni (tartalombesorolás, képek, leírás, stb). Illetve minden kiadás review-n megy át, ez jelenleg a vírus miatt akár egy hétig is eltarthat, viszont ha nem első kiadás, hanem csak frissítés, akkor még most is megvan 2 nap alatt az átfutás.
Úgy általában érvényes viszont hogy ha nem csak fel akarod rakni, hanem testre akarod szabni az egészet, pl korlátozni az elérhetőséget (ország, eszköz), vagy alfa / béta kiadások is kellenek, esetleg instant app, akkor ezekre mindre figyelni kell. Nem nehéz őket kezelni, csak figyelni kell rájuk.* November elején átalakul az oldal, de már most is lehet váltani. Megnéztem az új verziót, igazából csak a dizájn változott, material / flat lett az egész oldal. Szerintem szebb, könnyebben kezelhető, szóval lehet érdemes már az elejétől ezzel kezdeni, hiszen bő egy hónap múlva úgyis váltani kellene.
-
thiclyoon
aktív tag
válasz
bandi0000
#5057
üzenetére
Valószínűleg senkit se érdekel, és senki se foglalkozik vele, de mai napig így tanítják: függvény / function: egy programrész, melynek (többek között) van visszatérési értéke. Metódus / method: egy programrész, melynek nincsen visszatérési értéke. (Csak a különbséget emeltem ki, természetesen több tulajdonságuk van még, de ez tér el.)
Kotlinban ez érdekes kérdés, mert gyakorlatilag minden függvény/metódus igazából függvény (a fenti definíció alapján), hiszen mindegyiknek van visszatérési értéke (ha nincs jelölve explicit, akkor Unit, de ezt ki is lehet írni).
Kotlinhoz általánosságban: én nagyon szeretem a nyelvet (talán mert nagyon hasonlít a swift-hez), ha komolyabb kérdés van, beszállok a "vitákba" ha van időm
de nem nyelv- vagy alkalmazási terület (jelen esetben android) specifikus részeket szerintem teljesen felesleges itt tárgyalni. Ha valaki nincs tisztába legalább az OOP alapjaival (pl. nem tudja, mi az hogy öröklés, implementálás), akkor szvsz felesleges elkezdeni az androidot mert nem sok esély van rá hogy megtanulja alkalmazni így hirtelen, egyből. Nem bántásképp, hiszen én pont így kezdtem (aztán 1-2 év múlva újra elővettem, több tudással), szóval ismerem a helyzetet
-
thiclyoon
aktív tag
válasz
Ablakos
#5039
üzenetére
[java vs kotlin] már csak emiatt is a kotlint pártolom, akár kezdő, akár haladó (szerintem többet ér megtanulni egy új, modern, fejlődő nyelvet, mint a kényelmesség miatt a java-nál maradni). Nekem elég lett volna csak a null-safety, szerintem már ez is hatalmas előny. A google már bő egy éve is azt kommunikálta amúgy, hogy ha új projektet kezd valaki, kotlinban kellene tegye.
Mivel a kotlin és a java egymással is tud kommunikálni, így ahol a java fut, ott kotlin is tud ([ref]), így én nem látom, miért lenne használható a java több helyen, de meggyőzhető vagyok, ha van erre valamilyen megalapozott állítás

-
thiclyoon
aktív tag
válasz
lanszelot
#5031
üzenetére
Én udemy-ben eddig ritkán csalódtam, bár az igaz, hogy én ott java-ban tanultam meg és később tértem át kotlin-ra.
Fizetős, magyar, aktuális kurzus: [link] Nem reklám, de szerintem ezzel nem igazán tudsz mellélőni, teljesen kezdő szint (akár az alapozó kurzussal kiegészítve). Találhatsz róla 2-3 bemutatkozós videót is. Bár igaz, az ára húzós lehet (a "Több pénzt nem akarok a semmire kidobni."-t én úgy értettem, hogy "feleslegesen kidobni"), hiszen egy udemy kurzus többszöröséről van szó. Viszont magyar, konzultálni lehet vele, stb. (Az oktatót személyesen ismerem, és meg tudom erősíteni, hogy az oktatási stílusa kiváló, android témában pedig szerintem nagyon toppon van. Olvass utána nyugodtan, pl. markmyprofessor-on rengeteg véleményt találsz róla. Két egyetemen is tanít, mellette IT vezető is egy cégben, ezzel foglalkozik gyakorlatilag azóta, amióta van android.)
Ha az ingyenesség a fő szempont, akkor viszont youtube, dokumentációk, stackoverflow (és rengeteg idő), viszont ha nem vagy gyakorlott, elég nehezen fog menni, ami elveheti a kedved. Így ha a programozás sem megy (számomra ez nem derült ki a hozzászólásodból), akkor érdemes lehet egy stabil alapot szerezni java / kotlin-ból android nélkül, és csak utána építkezni ezekre. A két nyelv amúgy teljesen hasonló.
(Youtube-on belül nem tudok konkrétabbat mondani sajnos, hiszen rengeteg videó van, elég sok 5+ órás és hasonlók, nyilvánvalóan ezeket nem néztem végig.)
Nagyon off: a programozói tool-ok iszonyat gyorsan fejlődnek és alakulnak át, teljesen természetes szerintem, hogy egy pipa máshova kerül, vagy hasonlók. Nemrég jött ki az android studio 4.0, ami egy főfrissítés volt, így az újdonságokból még több van, mint általában. Van ennél rosszabb is: swift-ben például a nyelv két változata sem kompatibilis egymással. /Nagyon off vége.
-
thiclyoon
aktív tag
válasz
Ablakos
#5017
üzenetére
Főként a Sketch-t javaslom kipróbálni (fizetős, trial van, csak Mac, de nagyon jó), esetleg Adobe XD-t (ingyenes, Win / Mac-re tuti van, ez nem annyira profi). Vannak, akik a JustInMind-ot használják, én ezt valahogy nagyon nem szerettem meg. A Balsamiq-t nem használtam még, nem tűnik rossznak így elsőre.
-
thiclyoon
aktív tag
Másképp:
if (v.getClass().equals(Button.class)) { ... }
Talán elegánsabban meg Tag-ekkel lehet megoldani (.setTag(...), .getTag()). Az OO egyik sarkalatos pontja, hogy "Subtyping – a form of polymorphism – is when calling code can be agnostic as to which class in the supported hierarchy it is operating on – the parent class or one of its descendants." -
thiclyoon
aktív tag
válasz
Ablakos
#5010
üzenetére
Igazából a JetPack az csak egy official gyűjtemény, hogy milyen komponenseket érdemes használni. Szóval nem csak kotlinnal megy, de pl. az android ktx-nek szerintem nem sok értelme van java-ban. Amúgy a java és kotlin oda-vissza hívható, tehát hogy egy külső könyvtár (pl. a room, amit a jetpack perzisztenciára ajánl) miben van írva, nem számít.
-
thiclyoon
aktív tag
-
thiclyoon
aktív tag
válasz
Ablakos
#5006
üzenetére
.xml-ben számít, hogy mit mi után hozol létre, és ha így hagyod, ahogy írtad, akkor a WebView előrébb lesz, mint a ProgressBar.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tvText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WebView!"
android:textSize="30sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvText">
</WebView>
<ProgressBar
android:id="@+id/prgBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvText" />
</androidx.constraintlayout.widget.ConstraintLayout> -
thiclyoon
aktív tag
A permission-ök sosem voltak a kedvenceim, sok boilerplate kód a kb. semmiért. Nem akartam átírni ilyen szinten a kódod, mert lehet, hogy csak összezavartalak volna vele. Ha érdekel, külső könyvtár permission-ökhöz, ami számomra bevált: [link].
Itt pedig a működő verziójú Activity: [link]. A telepítés után egyből nullpointer exception fogadott. Ezek elkerülésére tökéletes a kotlin, szintén csak ajánlani tudom. A térkép betöltése viszont kissé lassú, ez ilyen sajnos.. -
thiclyoon
aktív tag
válasz
Ablakos
#4982
üzenetére
Érdemes először megnézni a fragment életciklust, itt látszik, hogy gyanús az az onSaveInstanceState() függvény például. Ez működni szokott, ha pedig valamilyen speciális helyzetben próbálod megoldani, akkor érdemes betenni ide a már elkészült kód releváns részét, akkor könnyebben tud bárki segíteni.

-
thiclyoon
aktív tag
válasz
bandi0000
#4980
üzenetére
Ilyen esetben én a dialogot jobban preferálom. A fragmentcsere is hasznos tud lenni, de szerintem kevés esetben hasznos / szép / illik az alkalmazásba. A dialog cancel + ok gombokkal szerintem erre teljesen oké, mikor csak egy megerősítés szükséges. Komplexebb esetben, mikor például nem minden fér el szépen egy dialogban, akkor érdemes lehet átgondolni a fragment-cserét is persze, nem kell mindenáron mindent belezsúfolni egy dialogba.
-
thiclyoon
aktív tag
-
-
thiclyoon
aktív tag
válasz
Ablakos
#4972
üzenetére
A kód jó
valószínűleg a gond az android api miatt van: "If your app targets Android 8.0 or higher, you cannot use the manifest to declare a receiver for most implicit broadcasts (broadcasts that don't target your app specifically)" [link]Ha a kódot így szeretnéd ellenőrizni, akkor a module szintű build.gradle targetSdkVersion-jét vedd kisebbre (pl. 22), és egy ugyanilyen api-val rendelkező emulátoron teszeld. Viszont éles projekt, stb. esetén tedd is vissza a target-et, és próbáld meg kódból (manifest-ből töröld a kódodat):
val intentFilter = IntentFilter("android.intent.action.AIRPLANE_MODE")
val receiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Toast.makeText(this@MainActivity, "changed", Toast.LENGTH_SHORT).show()
}
}
this.registerReceiver(receiver, intentFilter) -
thiclyoon
aktív tag
-
thiclyoon
aktív tag
válasz
Ablakos
#4960
üzenetére
Én se tudok konkrét dátumról, valószínűleg nincs is, és jó ideig nem is lesz szerintem
rengeteg app java-t használ (még), nem akar minden fejlesztőt elveszíteni a google. Én is a kotlint javaslom - legyen a fejlesztő bármilyen szinten -, sok-sok előnye van.(#4961) bandi0000: ha minden optional, akkor bármi lehet null

-
thiclyoon
aktív tag
válasz
Ablakos
#4958
üzenetére
A 0.7 az egy jó 6-7 éves verzió
én szeretem uptodate tartani azt is, meg a függőségeket is. Igaz, hogy egy-egy főverzió el tudja rontani a már kész alkalmazást (ilyenkor maradok a régebbi, jól működő verziónál), de általában vannak javítások, fejlesztések, amik miatt megéri. Azt nem tudom, hogy a gradle vagy az android studio miatt, de a build egy ideje egyre gyorsabb - már csak emiatt is megérheti újabbat használni / kipróbálni. -
thiclyoon
aktív tag
válasz
Ablakos
#4953
üzenetére
A setStyle()-lal próbáltad átállítani
STYLE_NORMAL-ra? -
thiclyoon
aktív tag
válasz
bandi0000
#4950
üzenetére
Igen, valószínűleg ez a statikus fragment-ek miatt nem működik. Végszükség esetére a fragment váltás után (még a fragment-ben) a dolgok visibility-jét átállíthatod gone-ra. De a csúnya kódok elkerülés érdekében én inkább a sima régi módszernél maradnék. Esetleg egy új activity-t is nyithatsz neki, és akkor minden tuti, még a megjelenést (mármint az animációt, gondolom emiatt is szeretnéd a fragment cserét) is testre tudod szabni

-
thiclyoon
aktív tag
válasz
bandi0000
#4946
üzenetére
Ahogy mondani szokták, a jelenlegi megoldás szuboptimális, de működik. Biztos van szebb, egyszerűbb megoldása is
Ezekkel a kódokkal a home-ban a text-re kattinva lecseréli a notification fragment-re, majd a dashboard-ra nyomva kicseréli a dashboard-ra (ahogy várnánk). A többi feladat megoldását (pl. home-ra visszanyomásra mi történjen) az olvasóra bízom 
MainActivity.kt-ba
interface MyListener {
fun clicked()
fun declicked()
}
class MainActivity : AppCompatActivity(), MyListener {
...
override fun clicked() {
val transaction: FragmentTransaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.nav_host_fragment, NotificationsFragment())
transaction.commit()
}
override fun declicked() {
val transaction: FragmentTransaction = supportFragmentManager.beginTransaction()
transaction.replace(R.id.nav_host_fragment, DashboardFragment())
transaction.commit()
}
}HomeFragment-be:
override fun onCreateView(...): View? {
...
textView.setOnClickListener {
(activity as MyListener).clicked()
}
...
}DashboardFragment-be:
override fun onCreateView(...): View? {
...
textView.setOnClickListener {
(activity as MyListener).declicked()
}
...
}És hogy lásd a változást, res/layout/fragment_notification-be:
<androidx.constraintlayout.widget.ConstraintLayout
...
android:background="#CA1414"
tools:context=".ui.notifications.NotificationsFragment">Illetve a res/layout/fragment_dashboard-ba:
<androidx.constraintlayout.widget.ConstraintLayout
...
android:background="#066EFF"
tools:context=".ui.dashboard.DashboardFragment"> -
thiclyoon
aktív tag
válasz
bandi0000
#4944
üzenetére
Pont nemrég kellett használnom Bottom Navigation-t, és én is másképp emlékeztem rá

Szerintem megéri ezt az új megközelítést használni. Nekem különösen a navigation res mappa tartalma tetszik, hasonlít az iOS-hez
Ha jól értem, az a kérdés, hogy hogyan adjunk hozzá még egy fragment-et a bottom navbar-hoz:
0. Activity létrehozása
1. res/menu/bottom_nav_menu-ben az elemek módosítása (adjunk hozzá egy navigation_blank id-jű item-et)
2. res/navigation/mobile_navigation-ben a felső sorban "new destination" (create new, BlankFragment)
3. MainActivity-ben az AppBarConfiguration-hoz adjuk hozzá 4. elemnek az R.id.navigation_blank-et
4. res/navigation/mobile_navigation-ben a létrehozott destination id-ja legyen navigation_blank
5. futtatás után ott az elvárt kimenet
-
thiclyoon
aktív tag
válasz
bandi0000
#4942
üzenetére
Activity-ben ?. operátor nélkül is működik, fragment-ben szükséges a ?. operátor. Alapesetben nem lehet null, de ha pl. átmegyünk valamilyen Settings, vagy Helper osztályba, akkor egy rossz architektúra / tervezés után simán jöhetnek a null pointer hibák ilyen esetben.
Jó megoldás? Nem igazán van, illetve én nem tudok róla
Nemrég láttam egy meme-t, ahol az volt a poén fő eleme, hogy mégis mi a fenének kell akár egy Toast-hoz context. Teljesen felesleges, ez az Android dizájn hibája, egyszerűen csak azt akarjuk, hogy jelenjen meg az aktuális képernyőn. Ha mégis szükséges egy context, vagy hasonló komponens (resource, activity, vagy akár teljesen más is, asynctask, stb.), akkor ezt javaslom, ez működni fog: [link] (kiegészíthető get/set-tel, egyéb dolgokkal, stb). Widget-nél tud ez is probléma lenni, de akkor kell a jó tervezés - vagy egy kis szenvedés a widget-nél 
-
thiclyoon
aktív tag
válasz
Ablakos
#4940
üzenetére
Most frissítettem 3.6.2-re:
Support for Jetpack View Binding, a compile-time safe replacement for 'findViewById()'
Illetve a frissítés utáni What's new?-ban is reklámozzák. Amúgy van létjogosultsága? ButterKnife eddig is nagyon szépen tudott ilyeneket, de Kotlin óta még arra sincs szükség.Canary-ból pedig én 4.1-re tudnék frissíteni, tehát a stable és a canary nem ugyanott tart szerintem.
-
thiclyoon
aktív tag
válasz
Ablakos
#4935
üzenetére
Illik az elején, de ennél a függvénynél elméletileg még az sem okoz problémát, ha egyáltalán nem hívod meg. A default implementáció csak a view-k többségének adatát menti el.
(#4936) dunc: az adb az sdk része, ami felmegy a nagyobb rendszerekre. Így én ennyiből sajnos nem igazán értem, mit szeretnél (és hogy miért, mi lenne a cél).
-
thiclyoon
aktív tag
válasz
Ablakos
#4932
üzenetére
Az implementáció ismerete nélkül én az
onSaveInstanceState()és azonRestoreInstanceState()függvényeket definiálnám felül. Vannak részletek, amire érdemes figyelni, pl. hogy az előbbi függvény nem biztos, hogy minden esetben lefut, pl. back gombra nem fog futni, hiszen az user explicit vissza akart lépni. Ekkor vagy azonPause()vagy azonBackPressed()függvénnyel érdemes foglalkozni. Alap funkcionalitásért viszont elég az első kettő függvényben megcsinálni a dolgokat
-
thiclyoon
aktív tag
válasz
bandi0000
#4928
üzenetére
A kártya beállítása után kért egy budget-et tőlem, és ha annak elérem az 50-90-100%-át, akkor minden project owner-nek küld email-t (ezt még nem sikerült kipróbálni, nem vagyok még 50%-nál sem). Ezek alapján ha gáz van, akkor egy gyors leállítás - megjavítás jó lehet ilyen helyzetben, főleg a fejlesztés során nyilván.
Firestore-ban collection-ök vannak (bár igaz, ezek ~ táblák). Az adatbázis - backend rész annyira nem az én műfajom, de igen, természetesen ez is megoldható benne (és ez a jó megoldás szerintem is). A "kapcsolótábla" tartalma (helyessége) viszont tőled függ, ha te rossz id-t írsz bele az userid "oszlopba" az egyik rendelésnél, akkor nem fog szólni neked senki... legalábbis én nem tudok róla, hogy itt lehetne ilyen kényszereket létrehozni.
Alapvetően szerintem nyugodtan gondolhatsz a firestore-ra úgy, mint egy sql adatbázis, max az ilyen dolgokat, mint a kényszerek, neked kell implementálnod (-> firebase functions részben ezt elég jól el tudod intézni). Ez sem egy vészes dolog, sima nodejs-ben megy az egész.
-
thiclyoon
aktív tag
válasz
bandi0000
#4926
üzenetére
(Nem biztos, hogy segít, de hátha..)
Én nem olyan régen kezdtem el használni a free tier-en túl az egyik projektben, egész pontosan március az első hónap, ami végig blaze plan-ben fut (február közepén váltottunk fizetősre, februárban még nem értük el a fizetős határt, így március elején nem kellett semmit fizetni). Szerintem amint úgy gondolod, hogy kellene egy fizetős funkció, akkor érdemes upgrade-elni blaze plan-re, ugyanis bár már ekkor meg kell adni egy kártyaszámot, de nem von le semmit. Mi jelenleg a beállított budget alatt vagyunk, de eddig nem jött semmilyen levonás / számla. Ennél többet április elején tudok mondani, de ha belegondolsz, mivel a funkciók úgy vannak megadva, hogy "x $ / second", így nekem ebből az jön le, hogy minden hónap elején jön majd valami, hogy ennyit és ennyit fogyasztottál, ezért ennyit és ennyit levonunk. De ha valakinek több tapasztalata van, ossza meg hogy okosodjunk
-
thiclyoon
aktív tag
válasz
Ablakos
#4922
üzenetére
Nálam a legfrissebb stable verzió van fent (3.6.1, bár emlékeim szerint így működött régebben is), a kezdőképernyőn "Check out project from Version Control" alatt van "git" menüpont, ott ha megadok egy url-t, már csinálja is a dolgát. Amúgy igen, az android studio a default. Ha nem erre gondoltál, akkor nem igazán értem, részletezd kicsit kérlek.

-
thiclyoon
aktív tag
válasz
hodav1993
#4908
üzenetére
Crossplatformban annyira nem vagyok otthon*, annyit tudok, hogy pl Xamarinban lehet csinálni ilyet (C# nyelv, Visual Studio környezet) - ezt én réges régen elkezdtem, de nagyon nem jött be. Azóta jött pár új dolog, a React az JavaScript-tel tudja ugyanezt, számomra a legújabb versenyző pedig a Flutter - ez Dart-tal megy, mindössze ennyit tudok róla.
Játékokhoz ajánlottnak mondanám a Unity-t és az Unreal-t, mindkettő crossplatform. Előbbit kicsit egyszerűbbnek mondják.
Talán ez átment, de egyelőre nem vagyok a crossplatform híve - inkább a natív appfejlesztés jött be eddig. Ha natívban gondolkozol, akkor azt tudnod kell, hogy iOS appok fejlesztéséhez kell egy mac (bármilyen), esetleg hackintosh. Crossplatform appokkal (amiket feljebb írtam), ez kikerülhető, ez a legnagyobb előnyük (számomra). Ezzel együtt tervezek "crossplatformul" megtanulni, Xamarin + Unity mindenképp

Ha van kérdésed jöhet ide is vagy privátba, ahogy könnyebb
* (Androidra Windows / Mac + Android Studio + Java-t, iOS-re Mac + XCode + Swift-et használok legszívesebben)
-
thiclyoon
aktív tag
válasz
hodav1993
#4906
üzenetére
Szia!
(Amit írok az natív fejlesztésre vonatkozik: android studio, java/kotlin. Ha crossplatform-egyéb megoldásban gondolkodsz (xamarin, react, c#, ...), akkor érdemesebb lehet más tapasztalatát elolvasni.)
Én személy szerint csak oop + "event driven programming", vagyis Java tapasztalat után tudtam megtanulni az androidot, bár régebben nem használtam az udemy-t, lehet, hogy ezzel már menne tapasztalat nelkül is. Tehát udemy-n tanultam meg végül, ezt a kurzust választva. Nem bántam meg, szerintem nagyon jól elmagyarázzák, de hátha mástól is jön 1-2 tipp. Ahogy írtam, nekem volt a kurzus előtt is tapasztalatom több nyelvben is, de a leírás alapján erre nincs szükség. (Mindenesetre ha a "Java Deep Dive" fejezet után se érzed magadat magabiztosnak a java körül, akkor érdemes lehet egy programozós videosorozatot / egyebet keresni.)
Jelenleg egyre inkább nyomatják a Kotlin nyelvet is a Java mellett/helyett - én azonban most is Java-val kezdenék, és utána ismerkednék meg a Kotlinnal (egymást ki tudják egészíteni, nem idegen nyelvek). Eléggé kihalt topiknak tűnik, de ha kérdésed van, igyekszem segíteni
Új hozzászólás Aktív témák
- BESZÁMÍTÁS! ASUS B460 i7 10700 32GB DDR4 512GB SSD ASUS TUF RTX 3070TI 8GB Lian Li LANCOOL 207 750W
- BESZÁMÍTÁS! GIGABYTE A520M R5 5500 16GB DDR4 512GB SSD GTX 1070 8GB Zalman T3 Plus DeepCool 400W
- BESZÁMÍTÁS! GIGABYTE A520M R5 5500 16GB DDR4 512GB SSD GTX 1660 Super 6GB Zalman T3 Plus 400W
- BESZÁMÍTÁS! GIGABYTE A520M R7 3800X 16GB DDR4 512GB SSD RX 9060 XT 16GB Zalman T3 Plus CM 650W
- BESZÁMÍTÁS! ASROCK H510M i5 11400F 16GB DDR4 1TB SSD RTX 4060 8GB Zalman S2 TG Cooler Master 650W
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- Dell Latitude E7470. Olcsó üzleti kategóriás laptop! Új akkumulátor!
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS4055
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- VeryBig! Akciós! Dell Precision 7760 i7-11850H 32GB 512GB SSD RTX A5000 16GB 17" FHD 1 év garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest
és persze nagyon könnyű rosszul használni, lásd például
ha ugyanúgy akarod őket behúzni, mint más függőségeket, akkor pontosan ugyanúgy kell őket kezelned. De amúgy valahogy úgy néz ki ez a legtöbb esetben, hogy ha organikusan növi ki magát, akkor
)
épp ideje volt már. és itt nem az átnézés minőségéről mondtam véleményt, csak magáról a tényről, hogy legalább elmozdultak abból az irányból, hogy bárki bármit feltölthet, ráadásul ingyen, ami ugye a másik platformon nagyon nem adott (és akkor még a third party letöltési helyeket nem is említettem). egy szó mint száz ezzel első tippre kevesebb káros app lesz, de a példádból kiindulva átestek a másik oldalra, túllőttek a célon. szerintem a jövőben majd beáll ez egy egyensúlyra
ha valóban 50-100 ilyen fejlesztő lenne, akkor nagy bajban lennének az erre szakosodott cégek
). Ahogy írtam, utóbbi is megoldható, de én még nem láttam olyan embert aki ezt javasolja (valós projekttel / tapasztalattal a háta mögött) a natív megoldás helyett. A flutter pl tudtommal újabb / szebb / jobb mint bármely crossplatform cucc, de még ezt se szeretik annyira a natívhoz viszonyítva. Ezt viszont csak hallomásból tudom, nem ismerem a fluttert
Én talán ilyesmivel indulnék neki:





