Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Kodzenie na iPhone'a jest be

Wstęp
Zacznijmy od tego, że jestem fanem produktów z jabłuszkiem. No wiecie Maki, iPhone'y czy iPody to świetne produkty. Jak coś ma logo Apple na obudowie to mogę kupować to w ciemno. Wiem, że dostanę kawałek świetnego hardware'u z jeszcze lepszym oprogramowaniem. Całą moja wiara w nieomylność Steve'a Jobsa poszła się kochać kiedy zainteresowałem się programowaniem. Naturalnym wyborem dla takiego fanboja jak ja było Objective-C. Możliwość kodzenia na Maka, urządzenia z iOS i ci wszyscy uśmiechnięci developerzy z promocyjnych filmów App Stora przekonał mnie że Cocoa z Objective-C to jedyny słuszny wybór na mój pierwszy język programowania.
I tu zaczynają się schody się schody
Postanowiłem zacząć od zainstalowania XCode'a. Wyszukałem moje płytki z aplikacjami, włożyłem do kompa, a moim oczom ukazało się pełno jakiegoś syfu zaczynającego się na literkę i. Było tam wszystko oprócz Xcode'a. Dopiero dobrotliwy wujek google podpowiedział mi, że wstrętny Xcode schował się na płytce z systemem zamiast na tej z aplikacjami. Można powiedzieć, że się czepiam jak bym nie miał lepszego tematu. Ale moje doświadczenie z Apple mówi mi że wszystko powinno się znajdować na swoim miejscu i do wszystkiego powinien być łatwy dostęp.
Potem wszedłem na stronę Apple dla developerów (http://developer.apple.com/)
poczytać trochę o mojej nowej zabawie. A tam wita mnie miły napis, że wstęp do iPhone developer program kosztuje 99$ . Oznacza to że żeby wstawić jakąkolwiek aplikację (darmową lub płatną) do App Stora muszę zapłacić prawie 300zł. Mało tego jak się potem dowiedziałem, żeby przetestować swoją aplikację na fizycznym urządzeniu (a nie na symulatorze) muszę zapłacić te 99$. Na domiar złego Apple zabiera sobie 30% od każdej złotówki wydanej na moją aplikację. Czyli ja dostaję tylko 70% mojej kasy. Ja rozumiem, że obsługa techniczna App Stora coś tam kosztuje ale bez przesady.
Objective-C
Najgorsze zostawiłem na koniec. Objective-C to najgorszy język programowania z jakim miałem styczność. Po dwóch tygodniach, i przejrzeniu kilkudziesięciu przykładów i stron dokumentacji dałem sobie spokój i uznałem że kompletnie nic się nie nauczyłem. Zrobienie hello world'a w tym paskudztwie to była męczarnia. Kompletnie nic nie działało tak jak powinno (przynajmniej moim zdaniem). Po tych dwóch tygodniach zainteresowałem się C++ i SFML'em. Po dwóch tygodniach opanowałem ten zestaw na poziomie robienia całkiem zaawansowanych gier. W Obj C miałem problemy z najprostszymi programami.
Podsumowanie
Mam wrażenie że moja nauka Objective-C to była strata dwóch tygodni mojego życia. Jeżeli zastanawiasz się od czego zacząć naukę programowania do napewno nie od Apple'owskiego języka. Jeżeli chcesz zająć się koniecznie mobilnym platformami to weź Androida czy Web OS ale trzymaj się z daleka od iPhone'a.

 

Komentarze

0 nowych
Ryan   15 #1 16.02.2011 18:12

Pozwoliłem sobie poprawić część błędów przy zatwierdzaniu.

Jednocześnie muszę Cię zmartwić - praktycznie każda platforma nakłada na twórców "podatek". Tych 30% to niedużo, jeśli weźmiesz pod uwagę to, że w to wchodzi nie tylko utrzymanie infrastruktury ale i np. tekst aplikacji przed jej opublikowaniem. Wyobraź sobie zresztą, że sprzedajesz w fizycznym sklepie - koszty utrzymania Twojego produktu są dużo wyższe. Przykładowo gry na amerykańskim rynku kosztują na starcie $60, z czego $20 "zjada" sklep. A to nie jedyny koszt, którego się nie da uniknąć.

Co do Oblective-C - składania jest IMO odrażająca, ale jako sam język nie jest taki zły. Ma szereg bardzo ciekawych właściwości, jak np. parametry nazwane funkcji/metod. Pewne aspekty Objective-C ciężko po prostu docenić na początku przygody z programowaniem. :) Ale składania wciąż woła o pomstę do nieba. ;] Tym bardziej zgrzyta to, że przecież Objective-C jest 3 lata młodsze od C++. Tak ciężko było się wzorować? :/

  #2 16.02.2011 18:20

Jestem programistą od 10 lat, a objective-C z Cocoa touch to najgenialniejsze środowisko z jakim się zetknąłem.
Dodatkowo... Wybór App Store, zwraca się w pierwszych godzinach po zaakceptowaniu pierwszej aplikacji... O ile masz dobry pomysł. 30%? No cóż, jak wrzucisz coś chwytnego do AppStore, to przestaniesz liczyć złotówki i jeszcze będziesz dziękował, ze ktoś to dla Ciebie stworzył.

przemek1234   7 #3 16.02.2011 20:20

@Ryan:
Wstęp to takiego Android Market jako deweloper kosztuje jedynie 25$, samo SDK jest darmowe, a publikacja przez nie jest jedyną drogą, gdyż Android umożliwia instalowanie z paczek APK, które można na swoją własną stronę wrzucić. Do tego dochodzi jeszcze na iOS do sytuacji, gdy deweloper zapłacił za rejestrację, nagłowił się nad programem, a ten z niejasnych przyczyn jest wyrzucany ze sklepu (przykład VLC albo iDOS).

XeonBloomfield   5 #4 16.02.2011 20:49

"Jeżeli zastanawiasz się od czego zacząć naukę programowania do napewno nie od Apple'owskiego języka."

Nie powinno być: "[...] programowania to na pewno nie od Apple'owskiego języka."?

(pierwsze) "do" -> "to"
"napewno" -> "na pewno"

Raid   3 #5 16.02.2011 22:47

Obj-C jest straszny? Nie żartuj sobie ewentualnie jeśli napisałeś to na poważnie to nie pisz bzdur ;) Obj-C to wyjątkowo prosty język, który co najwyżej na dzień dobry może zniechęcać dziwną składnią i nietypowym zarządzaniem pamięcią. Poza tym Obj-C jest potrzebny tylko tam gdzie odwołujemy się do Cocoa Touch, cała reszta może być pisana w C++. Koder z łbem na karku łyka Obj-C w 2 tygodnie.

30% revenue... to niech teraz kolega sprawdzi jaki revenue jest w Android Market... ooppssss! A miało być tak pięknie, krytykujemy iPhone, chwalimy Androida, nie wyszło ;)

99$ za konto developerskie - zwraca się w kilka dni po umieszczeniu aplikacji w sklepie. Takich kosztów nie ponosi się przecież tylko po to aby hobbystycznie testować kod na swoim urządzeniu. Mimo wszystko z tym się zgodzę! Testowanie na urządzeniu powinno być możliwe bezpłatnie.

To co mnie boli... zgłaszanie aplikacji do App Store, tworzenie wersji dystrybucyjnych jest katorgą, mam wrażenie, że cały proces można skrócić i nie zawracać głowy developerom.

Kolejna rzecz bolesna to weryfikacja, która często woła o pomstę do nieba. Przykładowo, zgłosiłem małą aktualizację aplikacji w ubiegłą środę, w piątek otrzymała ona status "w recenzji" który utrzymywał się przez cały weekend (nie pracują, wiadomo), w poniedziałek rano status zmienił się na "gotowy do wejścia do sklepu" i coś co trwa góra 2 godziny tym razem zajęło Apple ponad 24 godziny, bo w sklepie aktualizacja znalazła się dopiero we wtorek po południu. Rozumiem, że oni mają duże hamburgery do zjedzenia i mini-colę 2L do wypicia ale w tym wypadku przegięli.

Postawiłem peceta na nogi, chyba zainstaluję SDK Andka i się nim pobawię :)

  #6 16.02.2011 23:02

Czytam ten artykuł i ręce mi opadają.

1. Koszt wejścia w iOS Developer Program rzędu 99$ dolarów, to dobrodziejstwo, ponieważ odstrasza wszystkich niedzielnych programistów od wystawiania tam przypadkowych aplikacji
2. Apple pobiera prowizję od sprzedawanych na AppStore programów, ale załatwia za Ciebie dystrybucję. nie musisz się martwić o zbieranie opłat od klientów, itp. Można polemizować, czy prowizja jest za wysoka czy nie - ale fakt jest faktem, że odwalają za Ciebie czarną robotę
3. Objective C to dobrze przemyślany język o sporych możliwościach. Dla każdego programisty, który ma mocne podstawy nabyte z innych języków programowania, po przegryzieniu się przez jego nieco odmienną składnie, staje się jasny i przejrzysty. No ale jak ktoś się bierze za naukę nie mając podstaw, nie umiejąc np. języka C, nie znając pojęcia wskaźników, referencji, albo nie wiedząc czym jest klasa, obiekt itp, to później może mieś pretensje do całego świata, dlaczego ten język jest taki trudny i dlaczego go nie rozumiem, mimo że się uczyłem całe dwa tygodnie....

Więcej pokory i samokrytyki.

Ryan   15 #7 17.02.2011 12:20

@przemek1234: Jaka różnica, czy wstęp kosztuje 10 czy $100? To w skali kosztów tworzenia softu mała kasa. :) Poza tym programy z Android Market też mogą polecieć. Inna sprawa, że uznaniowość Apple jest często mocno irytująca. Przekonało się o tym m.in. polskie Codeminion. :/

przemo_li   11 #8 17.02.2011 13:41

@MichałS

Z uzasadnieniem kosztu to nieźle pojechałeś! To się nazywa "pobożne życzenie". Limit jest ok, jednak na start dla kogoś z małym pomysłem jest za duży. Mac - kosztuje, iPhone - kosztuje, Xcode - darmowe, iOS Developer Program - kosztuje.
Apple zrobiło prawie wszystko aby podwyższyć koszta wejścia z własną aplikacją.

przemo_li   11 #9 17.02.2011 13:44

@MichałS

Jedna linijka basha jest lepsza od 1000 linijek C!

Ale i tak jest lepiej myśleć, że pierwszym językiem MUSI być C, niż, że musi nim być Pascal. (koniecznie Turbo! w wersji 7).

Im język jest wyższego poziomu tym lepiej. Składnia zwykle się "cywilizuje", ilość linijek potrzebnych do uzyskania czegokolwiek maleje, i ilość potencjalnych błędów razem z nią.

przemo_li   11 #10 17.02.2011 13:44

@iphone.janmazurczak.pl (niezalogowany)

"Cocoa touch"

To nie środowisko, ekspercie....

  #11 17.02.2011 23:21

"Po tych dwóch tygodniach zainteresowałem się C++ i SFML'em. Po dwóch tygodniach opanowałem ten zestaw na poziomie robienia całkiem zaawansowanych gier." Dla mnie jesteś geniuszem i musisz mieć sporo wolnego czasu.

przemek1234   7 #12 18.02.2011 18:51

@Ryan:
Ale jak poleci program z Android Market, to zawsze jest drogra publikacji przez własna stronę, a jak poleci z App Store to jest już większy problem.

  #13 21.02.2011 03:54

No to teraz policzcie koszt VisualStudio z MSDN + Windows Prof.
I zmuście sklepu aby sprzedawały wasz soft w pudełkach, gdzie konkurencja jest nieziemska.
Ja Apple rozumiem - ma swoją filozofię.
No sorry, jeżeli chcesz zarabiać, te 300PLN nie powinno być problemem. Tyle zapłaciłem za dodatek do VisualStudio, drugie 300 PLN za wideokurs z technologii MS, 4000 PLN za VS z MSDN, 4500 za laptopa (HP) biznes z Vista Business. Więc nie stękajta, bo w cenie VS + Windows mógłbym mieć Maca razem ze środowiskiem i tym 99$.
Nie ma w życiu nic za darmo.

Kozakuz   3 #14 21.02.2011 16:21

Autor albo jest ślepo zapatrzony w swoje ograniczenie i niewiedzę, albo była to zwyła prowokacja.

1) Wydaje ci się tylko, że koszt utrzymania App Store'a jest mały. Utrzymać infrastrukturę na taką skalę to nie bułka z masłem i nie trzy centy. W dodatku utrzymać na takim poziomie niezawodności.

2) Stopa wejściowa odstrasza osoby takie jak ty, oraz niedzielnych programistów. Dzięki temu w sklepie jest mniej żałosnych aplikacji niz mogłoby być. I mniej narzekaczy i ślepców, którzy nie widzą ile jest za nich robione.

3) Gdybyś zrobil swoją aplikację i miał sam zając się marketingiem i dystrubucją: to [a] zarobiłbyś marne grosze, bo nie byłbyś w stanie zapewnić sobie takiego światła jupiterów jakie gwarantuje ci App Store na wejściu, lub [b] wręcz straciłbyś kupę kasę, właśnie na marketing, który i tak dałby wyników porównywalnych z tym, co oferuje ci App Store

4) Fakt, że nie byłeś w stanie "ogarnąć" Objective-C świadczy nie o języku, a tylko i wyłącznie o tobie. Widocznie nie jesteś tak dobrym programistą/developerem jak ci się wydaje i nie masz do tego głowy. Może czas zabrać się za mniej wymagające rzeczy, na przykład pieczenie chleba?

Czasem śmiech zbiera na to co ludzie piszą.

Luki_91   2 #15 21.02.2011 23:55

@pawelnr1 - teraz masz nauczkę, żeby nie krytykować Apple publicznie, bo komentarze typu "Autor jest ślepo zapatrzony w swoje ograniczenie i niewiedzę" i określenia "osoby takie jak ty" posypią się całą lawiną. :)
Nie wypowiadam się na temat samego wpisu, bo się po prostu nie znam na programowaniu w Objective-C. Widać jednak po komentarzach, że umiejętność kulturalnej dyskusji coraz bardziej zanika... Ciekawe, czy ja również zostanę "pojechany".

Ryan   15 #16 22.02.2011 00:05

@wozniak.daniel: Huh? Nie ma znaczenia, że C++ zachowuje w znacznej mierze kompatybilność z C, a tym samym nie jest stricte obiektowy. Moja krytyka Objective-C nie dotyczyła zresztą cech funkcjonalnych języka, a jego składni. Poza tym nazywanie C++ językiem nieobiektowym jest mocnym nadużyciem. Wspiera obiektowy paradygmat programowania. To, że nie wypiera innych nie sprawia, że nagle kodu OOP w C++ się pisać nie da. Zgodnie z Twoją logiką każdy język hybrydowy (np. Nemerle) staje się językiem żadnego typu (np. nie jest ani funkcyjny, ani obiektowy).

@przemek1234: Apptism? ;)

Raid   3 #17 22.02.2011 09:49

@Luki_91
Problem polega na tym, że poziom merytoryczny tego wpisu jest zerowy. Nie trudno też oprzeć się wrażeniu, że bardziej chodziło o skrytykowanie Apple i pochwalenie Androida, niezbyt udane zresztą. Niestety wszystko to co zostało napisane jest trudne do przełknięcia dla kogoś kto programuje iPhone, uwierz mi, gdyby to co robię wyglądało tak jak opisał autor wpisu to ja powinienem dostać order od prezydenta :) Sympatie i antypatie nie odgrywają tu żadnej roli, krytyka problemów jest wskazana ale krytyka tego co problemu nie stanowi jest niedorzeczna.

Nie chcę bronić żadnych komentarzy ale jestem w stanie zrozumieć, że po przeczytaniu wpisu w głowie jest taki LOL, że aż chce się ten wpis wykpić, właśnie w komentarzu.

  #18 04.03.2011 14:23

@wozniak.daniel
pisanie w kółko, że Objective-C jest najobiektowniejsze z obiektowych języków, bez podawania dalczego, jest dziwne.
"[..] nic nie pobije Objectie-C w obiektowości z języków współcześnie używanych na większą skalę" - a Python, Ruby żeby pominąć inne ?

  #19 21.12.2011 20:27

mam takie pytanie będę dopiero uczył się obiective c a mam za sobą jedną trzecią książki: szkoła programowania język C++ Stephen Prata, także myślę że nie będzie tak źle z obiektive c. Chciałbym się dowiedzieć czy trzeba mieć komputer od apple żeby mieć konto to wiem ale żeby kompilować gry też? czy można kompilować na innych systemach te gry np. linux bo aktualnie mam ubuntu z którego jestem bardzo zadowolony

  #20 08.06.2012 00:04

Tak jest to możliwe. Polecam szczególnie na sam początek jeżeli nie jesteś zdecydowany na wydanie kasy. Na ubuntu musisz zainstalować: gobjc gnustep gnustep-make gnustep-common (ew. jakieś dodatkowe paczki). Kompilujesz przykładową (niecoskoplikowaną komendą): gcc `gnustep-config --objc-flags` main.m -o hello -I /usr/include/GNUstep/ -L /usr/lib/GNUstep/ -lgnustep-base . Możesz też ew. korzystać z make'ów. Pod innymi systemami jest to jednak jak widzisz bardziej skomplikowane i nie dostarcza nam chociażby designerów do GUI. Jednak struktury, klasy i składnię można poznać w ten sposób. W razie wątpliwości zapraszam na stronę i tam można zadawać pytania mailowo lub w komentarzach

Gratulacje!

znalezione maszynki:

Twój czas:

Ogól Naczelnego!
Znalazłeś(aś) 10 maszynek Wilkinson Sword
oraz ogoliłeś(aś) naszego naczelnego!
Przejdź do rankingu
Podpowiedź: Przyciśnij lewy przycisk myszki i poruszaj nią, aby ogolić brodę.