[Obecně]V čem začít programovat mobilní aplikace?

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod loobick 30. 4. 2013 04:11

Licence na OSX umožňuje fungovat ve virtualizaci, ovšem opět pouze na hardware od Apple. Takže licence se sice sehnat dá, ovšem její použití na jiném hardware než od Apple by bylo porušením této licence, takže nelegální. To potom nemá smysl ani tu licenci kupovat, když by člověk plánoval její okamžité porušení ...
Arogantní admin. Ale co byste chtěli, když je tolik lidí, kteří se snaží vrtat ve věcech, které vůbec neznají. Když neumím opravit auto, také se nebudu snažit z opravářů tahat rozumy. Prostě si nějakého najdu, ať jej opraví za mě.
loobick
Junior

Odeslat příspěvekod masculinum 30. 4. 2013 05:16

Nejdříve je potřeba naučit se základy algoritmizace - jak se používají proměnné, pole apod. Toto je společné zhruba pro všechny klasické programovací jazyky a jakmile se tyhle principy naučíš, tak pak už není problém naučit se jakýkoli programovací jazyk. Na univerzitě jsme se učili algoritmizaci v nějaké řekl bych zjednodušené odrůdě Pascalu, ale příkazy byly v češtině :-) Po tomto kurzu přišla na řadu Java. Je to hodně užitečný jazyk, dají se v něm psát klasické desktopové aplikace, webové aplikace, mobilní aplikace pro Android, ... Řekl bych, že spousta univerzit dnes jako hlavní jazyk vyučuje Javu.
masculinum
Kolemjdoucí

Odeslat příspěvekod B!B0 30. 4. 2013 05:23

Přemýšlím, jestli vůbec ty rozsáhlé diskuze nad tím co vybrat za jazyk (příp. vybírání něčeho jiného) nakonec tazateli pomohou. Co člověk to názor a většina bude doporučovat co se jim líbí a co jim vyhovuje (což neříkám, že je špatně).

Pokud bych měl já přiložil svoji troškou, tak už víme, že pro jednotlivé platformy jsou používané různé jazyky. Existují řešení jako zmíněné od firmy Xamarin pro C# (příp. jiná), ale zatím nemám s němi zkušenosti. Co bych ale nejvíce doporučil, tak se nauč jazyk pro platformu, pro kterou chceš vyvíjet. U toho iPhonu je trochu problém s tou nutností toho Macu, takže pokud to zvládneš rozchodit nějakým způsobem (ať už ve virtuálce nebo jinak), tak bych klidně šel do Objective-C. Ono řekl bych, že při začátcích programování je nejdůležitější vidět výsledky, aby tě to motivovalo dále, takže opravdu při začátku si vybrat něco, co zároveň budeš i moci vidět a klidně i v reálu. Co máš za mobil? S Androidem? Tak klidně začni s Javou. Neřekl bych, že nějaký z té trojice jazyků (Objective-C, Java, C#) není vhodný pro začátečníky a když se naučíš OOP, tak pak pro tebe není problém se naučit kterýkoliv z těchto jazyků.

Vzhledem k tomu, že budeš mít Javu na škole, tak bych to udělal následujícím způsobem. Prvně bych si omrknul C. Na něm bych se naučl několikrát zmíněnou algoritmizaci. Existuje velké množství knížek pro začátečníky, takže je z čeho vybírat. Poté, jak by si začal zároveň na škole Javu, tak předpokládám, že tě budou učit OOP a základy programování, takže vlastně ti velice pomohou s učením Javy a není tedy problém při tom se zároveň učit, jak se vytvářejí aplikace pro Android. Jakmile by si udělal nějaké aplikace a byl by si spokojen se svými výsledky, tak se můžeš znovu rozhodnout co dál a jestli neskočit na Objective-C nebo C# nebo cokoliv jiného, co bude pro tebe ideální.
B!B0
Junior
Uživatelský avatar

Odeslat příspěvekod Tmthetom 30. 4. 2013 07:51

Android = MIT App Inventor
(Grafický programovací jazyk Scratch)
Tmthetom
Kolemjdoucí

Odeslat příspěvekod diceyj 30. 4. 2013 08:07

Já bych určitě doporučil Javu, popřípadě C#
- alespoň trochu nutí k dobrým návykům,
- jsou plně objektové, což je potřeba se učit už od začátku, aby člověk nedostal procedurální návyky,
- v dnešní době jsou oba nejžádanějšími jazyky na trhu práce,
- jsou produktivní - člověk se nemusí zaobírat alokací/dealokací paměti apod.,
- java jako hlavní jazyk pro android, C# pro Windows Mobile.
diceyj
Kolemjdoucí

Odeslat příspěvekod uuholo 30. 4. 2013 08:12

zkus se podivat na PhoneGap. existuje pro mac I win a preklada na android iOS a guru dalsich, je to docela sikovne. aplikace pises pomoci html5/css/java
uuholo
Kolemjdoucí

Odeslat příspěvekod ekral2 30. 4. 2013 08:45

Pročetl jsem si diskusi a největší omyl co tu byl napsaný (a jak už se snažil jeden člověk správně upozornit) je názor, že c# je jen pro windows.

Přitom
- Mono je opensource implementace c# pro spoustu platforem (stejně jako ani java není jen jedna, ale spousta implementací) a nová verze a komerční implementace od Xamarinu je stabilní a používá ji spousta firem v komerčních projektech.
- Pro mikropočítače existuje opensource (od Microsoftu].NET micro framework, v kterém se programuje v c#
- Silverlight (i když jeho budoucnost je nejistá, ale to platí i pro HTML5) je zase multiplatformí plugin pro browser i framework pro desktopové aplikace ve kterém se programuje v c#.

Vzhledem k tomu, že u učení programování je dobré mít i nějakou zábavnější aplikaci, kterou můžeš hned testovat (na konzoli to je dost nuda), tak bych adopporučoval pro začátečníka Javu nebo c# a vyzkoušet si podle tutoriálu jednoduchou mobilní aplikace. A vzhledem k tomu, že Microsoft nabízí vše v jednom na stabilní a jednotné platformě (androidy nejsou stejné a ani jejich emulátory), tak podle mně je dobré si koupit knížku o c# pro začátečníky, stáhnout Visual Studio Express for Windows Phone a pak si "pohrát" s formuláři, bindováním, atd. Dá se to pochopit docela rychle, ale zatím se nepouštěj do MVVM aplikací, prostě zkus základy, button, textbox atd. Výhodou je, že budeš umět zároveň Javu (c# z javy vycházel), nevýhoda je, že uvidíš, že c# je prostě promakaný jazyk, který mimichodem navrhuje a vyvíjí autor turbopascalu a delphi. Dalo by se říct, že c# vzal to nejlepší z javy, c++ a delphi a přitom vše zjednodušil a zpřehlednil. Ale na pořádné učení je potom už dobré začít klasicky od datových algoritmů a struktur (nezávislých na jazyce), ale to už se pak učí na těch školách.
ekral2
Kolemjdoucí

Odeslat příspěvekod rubickpale 30. 4. 2013 08:48

To je nešvar všech začátečníků, kteří mají pocit, že naleznou jeden univerzální jazyk a u toho zůstanou. Důležité je naučit se programovat, nikoli však řešit, ten který jazyk bude "nejlepší", přičemž žádný takový ani neexistuje. Ze začátku bych se hlavně soustředil na kvalitní výukový materiál. Řada publikací učí syntaxe jazyka, jeho sémantické vlastnosti, ale neučí programovat. To všechno se lidi sice naučí, pak i získají práci, ale nikdy se neuplatní ve větších projektech, a pak už je strašně těžký se naučit změnit přístup k programování, což ani spousta lidí nedokáže. Proto by každý neměl začínat programovat procedurálně, ale objektově. Algoritmizace je obor sám pro sebe a programování je hlavně o tom, naučit se vytvářet efektivní struktury návrhnu, psát čistý kód, umět testovat program nad nějakou vhodně zvolenou množinou dat atd. Nejsou to jednoduché věci, ale kdo si je osvojí, naučí se používat návrhové vzory tak, jak se správně mají používat, teprve pak si může říct, alespoň trochu rozumím programování.
rubickpale
Kolemjdoucí

Odeslat příspěvekod ekral2 30. 4. 2013 08:54

Pak mně ještě napadlo, že jestli tě baví i HW, tak si můžeš koupit třeba některý z těchto kitů, k tomu nějaký modul (teploměr, akcelerometr, dotykový displej, ethernet, ... ) a v tom kitu si vyzkoušet v c# třeba měřit teplotu, řídit motory atd. Je to podobné jak na Arduinu, ale zároveň se naučíš pořádný jazyk vycházející z javy (takže částečně i tu javu).

http://shop.microframework.eu/ProductOut.aspx/5658
ekral2
Kolemjdoucí

Odeslat příspěvekod Kaczer 30. 4. 2013 09:06

PhoneGap je sice fajn, ale je to obezlička pro nás lamy, co potrebuji mobilní aplikaci a neumějí ji napsat v rozumném čase a kvalitě jinak, než v HTML5 či Senche.
Kaczer
Junior
Uživatelský avatar

Odeslat příspěvekod ekral2 30. 4. 2013 11:29

No hlavně pro začátečníka je PhoneGap dost nevhodný a myslím, že je lepší začít s tou nestabilnější a jednotnou platformou (stabilita IDE, emulátoru a jednotnost chování na mobilních zařízeních a emulátorech) což je WP8 a iOS. Android je díky různým verzím natolik roztříštěný (a phonegap to nezachrání, jen přidá další úroveň možných problémů), že pro začátečníka je to naprosto nevhodné. Když se pak porovnají nativní jazky c# (WP8) vs objective-c (iOS) tak pro začátečníka je jednoznačně vhodnější obecně mnohem rozšířenější a víc "lidský" c#, který je zároveň velmi podobný na javu (a také na c++). S tím, že v c# je možné po naučení základů vytvářet aplikace i pro iOS a Android (Xamarin.IOS - dřív MonoTouch a Xamarin.Android - dřív MonoDroid, obě komerční platformy založené na opensource platformě Mono)).

Taky je nutné si uvědomit, že c# s nástroji .net nebo Mono není interpretovaný jazyk, ale například pro ios se c# napsaný v Monu přeloží celý do strojového kódu a pro android se překládá JIT pro různém procesory na kterých může běžet Android.
ekral2
Kolemjdoucí

Odeslat příspěvekod Matiseek 30. 4. 2013 11:36

FerdaCZE píše:Zdravím!
Chtěl bych Vás poprosit o radu. Je mi 15 a jsem na ZŠ a pokračovat budu na SŠ IT (Java programování), ale teď se učím sám hlavně pomocí video kurzů a literatury. Ale zatím jsem se soustředil jen na web (HTML a CSS) a teď bych se chtěl přesunou z PC platformy na Mobil (A nejraději iPhone, takže objective-C). Vím, že pro Andoid je potřeba Java, ale nevím, zda je to ten nejlepší začátek.
Hledal jsem opravdu dlouho na webu i tady na fóru a nejčastěji doporučované jazyky jsou: Phyton, Pascal, C, C# jaký z nich by tedy byl pro mne nejepší?

Nevím, na co mi jednotlivé jazyky budou, takže mi jde hlavně o to, abych se co nejrychleji dostal k Javě nebo Objective-C. Nebo si myslíte, že bych s nimi mohl začít hned? (Našel jsem hodně učebnic - hlavně Java 7, která má 700 stran a doporučení pro studenty, tak šlo by si dát hned tu?)

Případně, mohli byste mi doporučit nějakou literaturu? (Českou) nebo Anglické video kurzy?

Jenom tak pro zajímavost, já si vybral mobilní platformu, protože v ní sám za sebe vidím největší potencionál (využití smatphonů roste raketovým tempem). A s HTML a CSS (možná budu pokračovat JavaSriptem???) jsem začal, protože webové prostředí je mi zdá taky velmi perspektivní (vždiť google už udělal i OS který běží komplet na webu). Ale jaký máte názor vy? Co si myslíte, že je v součastné době "nejlepší"?


V tvojom prispevku krizis jednotlive programovacie jazyky krizom krazom. Rovnako ani nevies co dane programovanie pre iPhone obnasa.

V prvom rade si nastuduj zaklady programovacich jazykov, jednotlive paradigma, zakladne vlastnosti a pod... http://www.amazon.co.uk/Concepts-Programming-Languages-Robert-Sebesta/dp/0273769103/ref=sr_1_1?ie=UTF8&qid=1367317627&sr=8-1&keywords=concepts+of+programming+languages
Kym sam nepochopis rozdiely medzi jednotlivymi jazykmi, nebudes schopny vybrat ten vhodny pre teba.

Dalej si prejdi dev stranky applu. https://developer.apple.com .

Odporucim stranku http://stackoverflow.com. mas tam vlakna zaoberajuce sa cim konkretne hladas.
Dalsie zaujimave tutorialy mozes najst napriklad na http://www.lynda.com/18G.

Vela stastia.
Matiseek
Kolemjdoucí

Odeslat příspěvekod gandor 30. 4. 2013 11:58

rubickpale píše:To je nešvar všech začátečníků, kteří mají pocit, že naleznou jeden univerzální jazyk a u toho zůstanou. Důležité je naučit se programovat, nikoli však řešit, ten který jazyk bude "nejlepší", přičemž žádný takový ani neexistuje. Ze začátku bych se hlavně soustředil na kvalitní výukový materiál. Řada publikací učí syntaxe jazyka, jeho sémantické vlastnosti, ale neučí programovat. To všechno se lidi sice naučí, pak i získají práci, ale nikdy se neuplatní ve větších projektech, a pak už je strašně těžký se naučit změnit přístup k programování, což ani spousta lidí nedokáže. Proto by každý neměl začínat programovat procedurálně, ale objektově. Algoritmizace je obor sám pro sebe a programování je hlavně o tom, naučit se vytvářet efektivní struktury návrhnu, psát čistý kód, umět testovat program nad nějakou vhodně zvolenou množinou dat atd. Nejsou to jednoduché věci, ale kdo si je osvojí, naučí se používat návrhové vzory tak, jak se správně mají používat, teprve pak si může říct, alespoň trochu rozumím programování.

Typicky pohlad vysokourovnoveho programatora. Taky C-ckar resp. C++ -kar keby sa tu nejaky najde, tak by ta hnal kade lahsie a vznikol by nadherny flamewar....
Presne pre toto som pisal, ze je velky rozdiel medzi C, C++ (mozno) objective C a medzi Java, C#, PHP, Python...
Pritom ludia na C++ su tiez dost ziadany na trhu a pokrocila algoritmizacia (ktora ma byt sama pre seba) niekedy rozhoduje medzi tym, ci program bude doslova bezat dni alebo sekundy (a je jedno, ci program bezi na notebooku, alebo clustery)....

Tym sa snazim povedat len tolko, ze tvoj pohlad je spravny len pre asi polovicu trhu. A toto smerovanie si je dobre uvedomit a pustit sa smerom, kde su vyssie preferencie...

PS. pre vysokourovnove programovanie existuje tiez mnoho dobrych argumentov (typicky naco nieco kodit 10x tak dlho a riskovat memory leaks, ked sa to da napisat aj behom chvilky, kratsie a prehladnejsie, s otestovanymi funkcnymi nastrojmi/polotovarmi len preto, aby beh programu netrval 10ms ale len 9ms - a aj to len v pripade, ze som dobry v algoritmizacii)...
gandor
Mírně pokročilý

Odeslat příspěvekod Forty- 30. 4. 2013 12:48

Android - Java
iOS - Objective-C

cokolvek ine je uz otazna investicia.
existuju divoke projekty, ktore ti dovolia programovat v C#/Jave na iOS a potom to nejak nemotorne prevedu na Objective-C, ale po case si vytrhas vlasy.
Java je lahko dostupna na zaciatok, na Android mozes programovat z kazdeho OS.
Objective-C je dnes trocha hype, celkom tazko sa na to hladaju dobri programatori.

No co dodat na zaver, aj Java aj Objective-C su dost nemoderne a neflexibilne, Android (na to ze ho robi Google, clovek by cakal viac) je bordel a nekompatibilne peklo (a spousty XML), Objective-C nema ani len nejaky rozumny package system. Paradoxne najlepsie vyvojarske nastroje su pre C# a Windows Phone, len to zas nikto nepouziva :D

Tazky to zivot mobilneho programatora!
Forty-
Junior
Uživatelský avatar

Odeslat příspěvekod ekral2 30. 4. 2013 13:01

existuju divoke projekty, ktore ti dovolia programovat v C#/Jave na iOS a potom to nejak nemotorne prevedu na Objective-C, ale po case si vytrhas vlasy.


Xamarin.iOS překládá c# přímo do stojového kódu procesoru na iPhonech, takže pro ARM. Přitom ale používá nativní API iOS. A když píšeš o tom vytrhávání vlasů, tak je jasné, že jsi tu technologii nikdy nezkoušel.
ekral2
Kolemjdoucí

Předchozí stránkaDalší stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků