iOS programozás

Még sosem használtam amúgy a Files-t. Próbáltam keresni dokumentációban hogyan is működik, nem nagyon találtam pontos infót. Talán az egyetlen amit olvastam (de most nem találom, hogy hol), ha be van kapcsolva a filesharing (a két opció), akkor “csak” annyi történik, hogy a sandbox alkalmazás Documents könyvtárához hozzáfér a Files és az iTunes sharing. Ez megmagyarázhatja (legalábbis számomra), hogy miért került oda a realm fájlja.

Bár azt írja, hogy archív, de még mindig ide mutatnak a Swift dokumentációk: https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/AccessingFilesandDirectories/AccessingFilesandDirectories.html
Ez a szakasz: Determining Where to Store Your App-Specific Files
Itt azt írja, hogy a NSApplicationSupportDirectory lenne a helyes tárolási hely számodra azoknak a fájloknak, amit nem akarsz szinkronizálni. Persze az App törlésével ezek a fájlok is törlődni fognak.

De szerintem az a legjobb, ha megnézed hova kerülnek a fájlok szimulátorban. Ott konkrétan látszik a fájl rendszer is.

Rendes eszközön szoktam tesztelni, letöltöm az app konténerét, és megnézem benne. Szimulátorban meglehet szívni, mert ha konrétan mondjuk tesztelésnél beégeted a file URL-t akkor legközelebbi alkalommal amikor fut a Simulator, tök más lesz az igazi URL, és ez nem fog működni.

Ahogy most látom, akkor ha az NSApplicationSupportDirectory-ba rakom akkor annyi lesz a változás, hogy nem a ~/Library-ba rakja, hanem a ~/Library/Application Support-ba

Tudsz mondani konkrét példát érdekesség képpen? Mert nekem még sosem volt hasonló gondom, azért ajánlottam a Simulátort. Persze lehet azért sem, mert ha ilyet kell tesztelni, akkor eleve a logba kiiratom a dokumentum mappa helyét, hogy ne kelljen keresgélni és mindig úgy lépek be :smiley:

Ez igaz, de szebb :smiley:
Ugyanakkor szerintem nincs jelentősége egyáltalán, mivel sandboxing alkalmazás, ide úgy se nagyon ír más. Akkor lenne csak érdekes, ha macos-en nem sandbox és sandbox mód között váltogatnál úgy, hogy külön van a két verzió. De akkor is csak az a különbség, hogy szebb :smiley:
Amúgy meg csak azért írtam azt, mert a dokumentációban is azt írták :slight_smile:
A lényeg az, hogy se a temp se a cache könyvtárkaat ne válaszd. (meg ezek szerint a documents könyvtárat se).

Több helyen írták Stackoverflown is, hogy ha egy ilyesmi helyre mentesz:

/private/var/mobile/Containers/Data/Application/5527BBC6-651F-4E29-A3ED-E31FABCE958F/Documents/something.pdf

akkor a Simulatorban ez az URL nem fog működni legközelebbi futtatáskor mert más elérési úton fogja tárolni a fájlt. Files-ban nincs ilyen probléma, mert ott nem a konkrét url-hez férek hozzá.

Ez így ebben a formában nem igaz. Nem kell mindent elhinni amit ott írnak.
A Simulatorban akkor változik az elérési út, ha az alkalmazást letörlöd és újra felrakod (vagy nyilván ha reseteled a simulatort és újra felrakod). Nem kap minden futásnál új azonosítót az alkalmazás.

1 kedvelés

Jah, egyébként elfelejtettem írni, hogy nem kell elhinni sem az én véleményem, sem a Stack Overflow véleményeket, ki kell próbálni. :)

Gondoltam kipróbálom az AppCode-ot. Persze még nem jutottam sokáig, mivel valószínűleg nem fogok átállni rá, legalábbis egyelőre biztosan.

Utána néztem, 2011 áprilisa óta érhető el nyílvános preview. Azóta úgy látom nem sokat haladtak. Rettenetesen sokminden hiányzik ahhoz, hogy használható legyen.

Konkrétan:

  • Az xcode projekt beállításai szinte kezelhetetlenek vele. A Build Settings az egyedüli ablak, ami kb megvan írva benne, de nyílván az számomra átláthatatlan. Plusz a target membership is furcsa, bár azt ritkán kell használni.
  • Nincs Interface Builder. De egyáltalán semmi sincs. Amit persze elhiszek, hogy nem könnyű megvalósítani. De ugyanúgy nincs benne mondjuk spark előnézet. Nem néztem, de szerintem nincs benne SKScene editor vagy “adatbázis szerkesztő” sem.
  • Bár megoldották, hogy nem kell futnia az Xcode buildhez (nyilván), de azért persze a buildhez kell Xcode is. És ugyanúgy az Xcode-os Simulátort használják. Persze amúgy ezekkel egyáltalán nincs bajom.
  • Nem támogatják az Apple documentációját. Szóval hiába van tele a saját dokumentációmmal, nem jelenik meg sehol sem.
  • Nyílván alkalmazást nem lehet beadni az App Store-ba, de persze itt nem ők a sarasak.
  • Apródág, de számomra jó dolog az Xcode-ban, hogy az Xcode külön tudja színezni a “beépített” és a saját osztályokat. Ez azért segítség a “kódolvasásban”, de talán ezt meg lehet szokni.
  • A workspaceben van betéve 5 saját framework, így 6 projekt van benne. Persze nem a fő projekt neve az első az abc sorrendben. A fájlok ablakban még be lehet állítani, hogy vegye az Xcode sorrendet, de pl a beépített Terminal mindig az abc sorrend szerinti első könyvtárát nyitja meg.

Szóval eddig kb ennyit csináltak: vegyük a már meglévő valamelyik editorunkat, oldjuk meg, hogy beolvassa az Xcode projekt és workspace fájlokat (mondjuk ezt tényleg jól megoldották), majd fordítsuk le és futtassuk az Xocde saját beépített programjaival.
Ez szerintem nem sok minden.

És hiába van ott, hogy az összes IntelliJ plugin elérhető, ha egyik sem releváns. Hiába jó maga a felület és vannak benne shortcutok (generátorokra gondolok), ha a kódláson kívül szinte minden másért át kell menni az Xcode-ba. És bár sokminden benne van az alkalmazásban, valahogy mégsem áll annyira össze az egész számomra.

Ott van a Reveal támogatás, ami tényleg egész jól megoldottak. Bár a “hivatalos” mód nem működik, de a Reveal appból könnyen megnyitható a futó projekt. De a Reveal sem annyira jó számomra, hogy fizessek értel. Nem tudja kezelni a SpriteKit objektumokat. Bár az eléggé jó cucc, hogy amit átszínezek a Reveal alkalmazásban, az egyből megjelenik a Simulatorban.

Egyszóval kicsit csalódás elsőre az AppCode, de azért még nem adom fel. Még próbálkozok, hogy csak fixen kód írására mennyire jön be. Meg aztán várok innen is tippeket :D.

Be lehet olvasni valahogy az Images.xcassets (aka Assets.car) fájlból a képet úgy, hogy ne cachelje be a rendszer? Mert az UIImage(named:) becacheli az egészet. A képek nagy részét viszont csak egyszer használnám. És ráadásul nagy méretűek. Szóval kb a user egy képet fél-egy percig lát.
Vagy arra van mód, hogy felszabadítsuk ezeket a cachelt képeket?

Tudom, van az UIImage(contentsOfFile:), amivel cachelés nélkül be tudok olvasni képet. Viszont Bundla.main segítségével tudnám megadni az elérési utat. Azzal viszont nem fogja visszafejteni, hogy melyik eszközre melyik kép való.

Talátam egy jópár éves Objective-C kódot, ahol saját maga próbálja meg megoldani xcassets-ből a betöltést (plusz kikerüli az Assets.car-ba átemelését a képeknek).

Aztán ami még eszembe jut, hogy On Demand Resources segítségével minden eszköznek megmondom melyik képeket töltse le és úgy talán tudnám használni cache nélkül, de az meg az ODR miatt egy kicsit szívás.

Azt meg nem nagyon szeretném elengedni, hogy ne használjak xcassets-et. Mert az elég kényelmes…

Sziasztok!
Nem akartam új topicot nyitni így ide írom. Jó pár napja agyalok esti képzésbe elmegyek programozást tanulni, elegem van a mostani munkámból, a kérdés a következő:

Ti akik jobban látjátok a piacot milyen irányban érdemes elindulni? Melyik nyelvet érdemes tanulni? Őszintén megmondva a webfejlesztés annyira nem érdekel, már mint a végén nem egy html, php fejlesztő szeretnék lenni.

1 kedvelés

Java, JavaScript, React, Angular ami szerintem divatosabb mostanság. Az a baj, hogy nem tudom milyenek a lehetőségek arra feléd, de itthon szerintem nem igazán van normális online képzés (szervezett formában), amit munka mellett lehet csinálni, de ha tudtok ilyet, akkor engem is érdekelne :)

Szóval én inkább LinkedIn/Youtube videókat javaslom, bár az a baj, hogy nincs valid tapasztalatom, mert általában elkezdem, majd félbe hagyom. Nekem sajnos muszáj, hogy kötött formában tanuljak, mert ha én osztom be, akkor mindig jön munka vagy valami, ami “most az egyszer” (mindig) fontosabb… Nem vagyok elég fegyelmezett saját magammal szemben :D

Salesforce. Ugyanaz a sz*rlapátolás, mint máshol,de általában jól megfizetik. Ráadásul jók az online anyagaik.
Nem teljesen hagyományos programozás, de van rá kereslet.

Szerintem ha még sosem foglalkoztál programozással, akkor először az analitikus programozási szemléletet kéne felszedni, alapvető algoritmusokat megismerni kiegészítve azokkal a tárgyakkal amik fontosak: pl alapvető matematikai ismeretek, logika stb.
Ezek programozási nyelvtől függetlenek, viszont akár lehet úgy is tanulni őket, hogy egy nyelven keresztül szemléltetve (pl Python).
Angol tudás majdnem (ha nem jobban) fontos mint egy programozási nyelv ismerete, minden anyag, dokumentáció angolul elérhető, ezeket tudni kell használni már a tanulás szakaszban is.

Szerintem az elején még nem érdemes úgy hozzáállni, hogy “milyen nyelv, milyen irány”, később egy jó alap után bőven elegendő specializálódni.
Én első körben valószínűleg a Python nyelvet választanám, egyszerű tanulni, és gyakorlatilag bárhol lehet használni (web/desktop/data science/)

Webfejlesztést szvsz nem feltétlen érdemes célként kitűzni, alapvetően az a “belépőszint” (bár ez hülyén hangzik), rengetegen választják, fizetések sem annyira jók, viszont cserében a klasszikus értelemben vett “programozói tudás” ott szükséges a legkevésbé. Webes területen sokkal jobban felértékelődik egy designer attitűd. (Tudom, ez most kicsit ki lett sarkítva)

Ha érdekelnek a mobilok, akkor esetleg android/iOS vonalon érdemes lehet elindulni, ott a fizetések is magasabbak, Magyarországon ezekből a fejlesztőkből inkább hiány van (gondolom külföldön is hasonló).
Bár ezzel itt nem leszek népszerű, jelenleg ha kéne választanom, biztos az android irányába indulnék el, egy jó Java / Kotlin tudás szerintem sokkal hasznosabb lehet a későbbiekben, mint a Swift tudás, ami gyakorlatilag nem jó semmire Apple vonalon kívül.

Udemy-n vannak nagyon olcsó kurzusok, ezek általában a teljesen kezdő szintre lőnek, szóval kezdésnek jók szerintem.

Összefoglalva: Pythonnal kezdenék, miután megvan egy alap szemlélet, elindulnék valamilyen specializáció irányába(Java, esetleg webes technológiák (Angular/React), React Native), C# akár desktop, akár webes környezetben, vagy akár maradnék Python vonalon.
Szerintem a folyamat legelején fontos az, hogy a tanuló “lássa”, hogy “történik is valami” az által, hogy mit ír, legyen visszajelzés, sikerélmény. Ebből a szempontból akár a JS is lehet kezdő nyelv, de ha tudom, hogy nem akarok webes területtel foglalkozni, akkor inkább Pythont választanék.

Nektek valaszolok nem tudtam kire nyomjak ra. Mindnekeppen iskolaban fogom tanulni hetvegi kepzes itt sok ilyen jellegu iskola van. Igye nemetul fogom tanulni es a nemetnyelven fogom tanulni, higyetek el alap az angol de itt minden anyag megvan ezen a nyelven is (amugy nem vagyok perfekt angol de az irott szoveget elege jol ertem). Oszinten megmodva leginkabb mobil platforomok erdekelnek es nyilvan inkabb ios. A web teljes mertekben hidegen hagy. Alapban cnc programozo vagyok es 8 evesen toltam basicben (persze ez ma mar kb semmit nem er de basicben meg megy a “hello world”).

Oszinten megmondva engem a hang resze erdekel a legjobban amiota latam egy hirdetest, hogy az egyik komoly hangtechnikai gyarto keres fejlesztot azota agyalok valojaban ez erdekel.

Jelenleg epitoiparban vagyok ahol nagyon jol fizetnek de mar eleg volt.

Így elolvasva, milyen irányt is szeretnél, akkor egyértelműen iOS és Swiftet ajánlanám. Vagy Androidra Kotlin nyelv, ahogy @Rozse is írta. Mondjuk én jobban bízom abban, hogy később a Swift nyelv elterjedtebb lesz. Úgy tudom most állnak neki több rendszerre is portolni a swiftet, köztük Windowsra is. (Bár UI Library nélkül nem ér semmit sem az egész…)
Ha nem mobil Applikáció lenne a cél, akkor én is a Pythont javasoltam volna annak ellenére, hogy színtaktikalag ő áll a legmesszebb a többiektől és ha nem válik be, akkor nehezebb belőle áttérni másra.
Ugyanakkor a lényeg szerintem, hogy csak egy adott nyelvet/platformot válassz ki és csak egy nyelvvel foglalkozz, rosszabb az, ha több nyelvhez is értesz, de mindegyikhez csak kicsit.

1 kedvelés

Sziasztok! Szeretnék iOS programozást tanulni. Korábban Delphi, PHP, HTML, CSS-el foglalkoztam. Van iPad-em de nincs még MAC-em ami tudtommal nélkülözhetetlen. Első körben nem vennék csúcs gépet. Egy használt Mac Mini gondolkozom csak nem tudom melyik az a modell ami még pár évig támogatott a fejlesztéshez. Segítséget előre is köszönöm.

A telefonon/tableten talalhato operacios rendszerhez passzolo Xcode verzioval tudsz fejleszteni. Az adott Xcode verzio pedig kb mindig a legujabb elerheto macOS rendszert keri. Tehat barmit veszel, annak kepesnek kell lennie a Big Sur futtatasara.

Tehat osszefoglalva, az Apple eseteben eveket vasarolsz. Azaz annak fenyeben erdemes nezni a hasznalt gepek arait, hogy hany evesek, valamint, hogy kb hany evre visszamenoleg tamogatja az Apple a szamitogepeit.

Ugyonakkor most keszul az Apple az Intel lecserelesere. A korabbi evek alapjan, az Xcode es az iOS fejlesztes lesz az elso, ami meg fogja kovetelni az uj architektura vasarlasat. Elkepzelheto, hogy barmit vasarolsz, abban nem lesz mondjuk 2 evnel tobb (tehat a Big Sur+Xcode oke es valoszinuleg a kovetkezo macOS es Xcode is oke, de azutan szerintem eselytelen).

Köszönöm. Esetleg a tanuláshoz érdemes bérelni virtuális mac-et amire PC-ről vagy iPadról bejelentkezem? Nem akarok százezreket költeni ha még se jönne be az Xcode.

Használtan vásárolt Mac-et viszonylag kis veszteséggel el lehet adni.

1 kedvelés

Mac Mini 2012 elég hozzá?

Nem. Mac Mini es iMac eseteben 2014-es modellek, MacBook Pro es MacBook Air eseten a 2013-as modellek, MacBook eseteben pedig a 2015-os modellek a megfeleloek. Bovebben az oldal alja fele: https://www.apple.com/macos/big-sur-preview/

A virtualis maceket nem ismerem, de ha ez valamilyen virtualizacios szoftvert jelent, akkor ha a videokartyaval nem varazsoltak valamit, akkor a teljesitmenye katasztrofa lehet/lesz.