2010-04-16 14 views
11

Wkraczam w rozwój mobilny. Pracowałem głównie w .NET od 1.0 pojawił się w wersji beta. Wcześniej byłem głównie facetem w C++ i Delphi i od czasu do czasu zajmuję się C++. Robię aplikacje internetowe całkiem sporo, więc jestem dość biegły w JavaScript, JQuery i CSS. Zrobiłem też kilka aplikacji Java. Zacząłem programować w Internecie z CGI i żyję głównie w świecie ASP.NET MVC.Sugestie dotyczące wprowadzania rozwiązań mobilnych - czysty pakiet SDK dla iPhone'a, pakiet SDK dla Androida, ekran dotykowy Mono Touch lub Titanium?

Próbuję zdecydować, którą platformę/OS i narzędzie wybrać. Jestem zaniepokojony wielkością rynku dostępnego dla moich aplikacji, a także rynkiem umiejętności, które zdobędę.

Aplikacje, które mam na myśli, działają zarówno na telefonach, jak i na klockach. Niektóre aspekty tego, co mam na myśli, będą lepiej odtwarzane na większych ekranach, które będą dostępne na podkładkach.

Oto opcje Zastanawiam:

  1. Apple iPhone/iPad przy użyciu czystego firmy Apple SDK (Objective-C)
  2. Apple iPhone/iPad za pomocą Mono Touch (C#)
  3. Android przy użyciu czystego Android SDK (Java)
  4. Wiele platform używających czegoś podobnego do Titanium do generowania natywnych aplikacji z technologii internetowych (HTML, CSS i JavaScript)
  5. Wiele platform korzystających z aplikacji internetowych HTML5 działających w systemie b rowser (HTML, CSS i JavaScript).

Którą opcję wybrałbyś? Czy masz inną sugestię? Jakie są plusy i minusy?

Odpowiedz

9

Chyba masz pokrywę prawie wszystkie opcje, pozwól mi podzielić się moją opinię na temat każdego z nich.

  1. Warto zacząć od najwyższego priorytetu jako Buzz teraz przez kilka dni.
  2. Zgodnie z postanowieniami umowy deweloperów iPhone OS 4, sekcja 3.3.1, jabłko zezwala tylko na aplikacje opracowane w języku C/C++ i JAVA. Nie sugerowałbym, aby umieścić swoje wysiłki w języku C#.
  3. Jego wartość i jeśli masz dobry chwyt nad rdzeniem JAVA, możesz być produktywny w kilka dni. Na tym etapie Android może nie mieć dużego udziału w rynku, ale moja osobista opinia to ANDROID TO FUTURE.
  4. Mój numer 2 działa również na tytanu, ale zgodnie z najnowszym tweetem mają one aprobatę Apple. Nie jestem świadomy ziemskiej rzeczywistości.
  5. samo jak punkt numer 2

Dobrze jest, jeśli zaczynają się koncentrować na rodzimym iPhone i Android ramach programowania na tym etapie. Nadal, jeśli masz czas, możesz zainwestować w Blackberry RIM, ponieważ masz doświadczenie w JAVIE.

Witamy w urządzeniu typu smartphone.:)

Dzięki

Rajnikant

+0

Martwię się o ryzyko wynikające z umowy licencyjnej Apple zarówno w przypadku podejścia Mono, jak i Titanium. W związku z tym jestem mocno przekonany do rodzimych narzędzi. Przechodzę tam iz powrotem na Androida. Jego sklep z aplikacjami jest obecnie odległy i pozostaje w tyle za Windows Mobile w zakresie penetracji telefonicznej. Mam Droida i kocham go. Preferuję również otwarte podejście Google. Jednak nie będę stawiać na Steve'a Jobsa, jeśli chodzi o marketingowe urządzenia konsumenckie, które są po prostu fajne. Dlatego podoba mi się twoja propozycja zrobienia iPhone'a/iPada dla buzzów i Androida na przyszłość. –

+0

Rozwój HTML5 jest nadal bardzo dozwolony w umowie, o ile nie wdrożysz własnego interpretera JavaScript. Prawdziwy wybór między platformami jest prawdopodobnie najłatwiejszy (choć tracisz wszystkie zalety każdej platformy). – shosti

+0

HTML5 może być prawdziwy w przypadku aplikacji internetowej, ale korzystanie z natywnych funkcji poszczególnych urządzeń musi zależeć od biblioteki natywnej. Zgadzam się, że technologie wieloplatformowe są ambitne i starają się usunąć rozdrobnienie, ale według mnie to prawdopodobnie wojna własnościowa i nie lubią tego rozdrobnienia. – Rajnikant

1

Krzyż ramy platformy należy spojrzeć na:

PhoneGap QuickConnet

4

Jeśli kierujesz iPhone/iPad, zmiany umowy iPhone SDK, które są zapoczątkowała z iPhone OS 4.0 i nowego stanu SDK, który Cię mogą przesyłać aplikacje tylko do App Store, które zostały napisane w języku C/C++/Objective-C lub Javascript, jeśli jest to aplikacja internetowa.

Należy wziąć to pod uwagę, ponieważ warstwy kompatybilności, kompilatory krzyżowe, translatory kodu źródłowego wyglądają tak, jakby były zakazane na mocy nowej umowy, co obejmuje takie funkcje, jak MonoTouch, Adobe Flash CS5, Phonegap itp.

+0

Nie mamy jeszcze pełnej historii na ten temat. Na przykład, PhoneGap jest wyraźnie DOZWOLONY: http://blogs.nitobi.com/jesse/2009/11/20/phonegapp-store-approval/ Podobna historia dotyczy Appcelleratora. –

+0

Tym razem mogą być one dozwolone. I to było myślenie innych narzędzi programistycznych dla platformy iPhone. Kto może powiedzieć, że Apple nie będzie blokować tych narzędzi w systemie OS 4.1 lub 5.0. Nigdy nie możesz być tego pewien. Ale możesz być pewien, że oficjalny pakiet SDK i kod napisany w C/C++/ObjC będą dozwolone. Jest to jedyne znane, w morzu niewiadomych. – Jasarien

+0

Nie możesz nawet być tego pewien. Proces zatwierdzania w App Store - – synic

1

Najlepiej nie odstępuj od aplikacji internetowych, jeśli chcesz, aby były dostępne na wielu platformach; główne systemy operacyjne dla smartfonów - iPhone OS, Android i WebOS, z systemem Blackberry OS, który podobno jest następny - korzystają z renderera Webkit, a będziesz miał łatwiejsze robienie rzeczy, które nie są obce każdej platformie, wykorzystuje jedną ze struktur do pisania pozornie międzyplatformowego kodu. Jest tak szczególnie w przypadku uwzględnienia ostatnich zmian Apple w umowie licencyjnej SDK: narzędzia takie jak MonoTouch i PhoneGap mogą już nie nadawać się do umieszczania rzeczy w ich App Store.

+0

Deweloper we mnie nieustannie mówi mi, co sugerujesz - zrób aplikację internetową. Możesz sprawić, by działał na wszystkich smartfonach i padach z jedną bazą kodu i kilkoma warunkami. Plus, HTML5 daje wystarczająco dużo fajnych rzeczy klienta, aby działał świetnie. Niestety, przedsiębiorca we mnie ciągle to kręci. "Sklepy z aplikacjami mają bzik", mówi. "Będzie dużo rywalizacji, ale przynajmniej twoja aplikacja będzie miała większą szansę na zauważenie." –

1

Jest wiele rzeczy do rozważenia. Najpierw musisz zadać sobie dwa pytania:

  1. Jakie platformy i jakiego rodzaju użytkowników chcesz objąć.
  2. Czy chcesz komunikować się z telefonem (GPS, SMS itp.) Lub potrzebujesz tylko podstawowych manipulacji danymi i widoków.

Jeśli potrzebujesz dostępu do funkcji telefonu, musisz opracować aplikację, która działa w telefonie. Najbezpieczniejszą opcją jest tutaj JAVA, ponieważ działa na prawie wszystkich telefonach. Ale nawet JAVA jest obecnie zunifikowanymi narzędziami dla wielu platform. Apple nakłada ograniczenia na iPhone'a i iPada, a także MS jest dla mnie niejasne z najnowszym Windows Phone 7.

Teraz, jeśli potrzebujesz tylko wyświetlać i manipulować danymi, HTML może być prawidłowym podejściem. Ma tę zaletę, że jest platformą crossową, a wszystkie nowsze telefony nie będą miały problemu z wyświetlaniem podstawowego kodu HTML. JavaScript lub bardziej skomplikowane formularze są nadal wątpliwe. Dla mnie jest to przyszłość dla aplikacji zorientowanych na dane, ponieważ wsparcie internetowe będzie tylko lepsze, włączając javascipt. Jeśli chodzi o HTML5, mówię, zapomnij o tym. To zajmie dużo czasu, aby być szeroko rozpowszechnionym na komputerach stacjonarnych i telefonach, na pewno zajmie to lata.

Opracowanie natywnych aplikacji dla dużej liczby telefonów jest sporym wyzwaniem i wymaga dużo pracy i prawdopodobnie dużego zespołu. Więc znowu to zależy od zadania, które musisz wykonać. Także, jeśli robisz aplikacje biznesowe z wyższej półki, możesz kierować reklamy tylko na Blakberry, Windows Mobile i coś jeszcze. Nie wiem, jak szeroko rozpowszechniony jest iPhone i Android w świecie bussines. Nie myślę tak bardzo.

To byłyby moje guidelliny. Oczywiście, jeśli możesz, trzymaj się aplikacji internetowych.

0

Niezależna od nowej umowy deweloperskiej, której skutki są wciąż nieznane (np. Ludzie zakładali, że PhoneGap i Appcellerator nie żyją, czyli not the case); nadal myślisz lepiej, celując w Celu C na platformie iPhone OS.

Chodzi o to, że istnieje wiele bardzo silnych frameworków w kakao.Korzystając z Objective-C, uczysz się myśleć podobnie jak projektanci frameworków, co oznacza, że ​​będziesz miał znacznie łatwiejsze zrozumienie używanych wzorców, a także z czasem nauczysz się przewidywać zdolności i nazwy w ramach, w którym masz jaśniejsze zrozumienie nad stosowanymi standardami stylistycznymi.

Jesteś również natychmiast gotowy do wykorzystania nowych umiejętności w obrębie języka i frameworków (takich jak bloki lub wielozadaniowość), zamiast czekać na pisarzy ramowych, aby dowiedzieć się, jak zaprezentować ci nową funkcję. Biorąc pod uwagę przyspieszenie funkcji platformy, może to być znaczącą zaletą.

Również na poziomie osobistym - po prostu lepiej jest jako programista, im więcej języków dogłębnie rozumiesz, a im bardziej będziesz naciskał poza strefę komfortu, aby nauczyć się czegoś naprawdę nowego. To poszerzenie pomaga umysłowi w inny sposób i sprawia, że ​​jesteś bardziej elastycznym myślicielem.

Nie mam nic przeciwko tym, którzy używają innych języków, takich jak Mono na platformie, po prostu uważam, że najlepiej jest używać narzędzi i języków, które są podstawą każdej platformy, na którą kierujesz. Gdybym miał przejść do rozwoju Androida, przerzuciłbym się na wszystkie Java w mgnieniu oka, zamiast szukać mostu Objective-C.

+2

Tak, teoretycznie, wszystko jest w porządku, ale ile języków naprawdę można poznać? Dwa najwyżej. Ponieważ oznacza to, że musisz nieustannie w nich pracować, śledzić zmiany i uczyć się ich. W przeciwnym razie jesteś dźwignikiem wszystkich zawodów i panem nikogo. Również jeśli jesteś sam lub w małych ilościach i chcesz kierować reklamy na wiele platform, natywna w każdym z nich jest po prostu niewykonalna. – Runner

+0

W dowolnym momencie, około dwóch. Przez całe życie? Tuzin lub więcej, z łatwością. –

+1

Następnie zgadzamy się. Jest to problem, jeśli chcesz rozwijać się natywnie na wielu platformach i nie masz siły roboczej. Ale jeśli istnieje szansa na zrobienie projektu i nauczenie się nowego języka w procesie, mówię też, idźcie za nim. Takie szanse są rzadkie. Zawsze istnieje termin lub coś, co cię powstrzymuje. – Runner

1

Chciałem tylko opisać punkt ponownie. Android v iPhone rozwoju. Pozwolę sobie z góry powiedzieć, że nie opracowałem dla Androida, ale mam iPhone'a. Posiadamy jednak telefon z Androidem i iPhone'a w naszym domu, więc mogę mówić zarówno jako użytkownik.

Jeśli chodzi o aplikacje, aplikacje na iPhone'a są łatwiejsze i przyjemniejsze w użyciu (dla użytkownika końcowego). Wiele aplikacji na Androida jest naprawdę bzdurna. Nie oznacza to, że aplikacje na iPhone'a nie są, ale naturalny interfejs iPhone'a naprawdę je nieco wspiera. Interfejs Androida nie jest niczym specjalnym. Jako użytkownik końcowy wolę iPhone'a i to powinno mieć znaczenie dla programisty, który próbuje wybrać platformę.

W ostatnim czasie wiele się zmieniło w stosunku do Apple'a w związku z ich zmianą ToS, a programiści stwierdzili, że przejdą na Androida. Mówię - trzymaj się iPhone'a, ponieważ iPad tworzy buzz i jest dla ciebie wyjątkową okazją. Jako ktoś, kto używał Titanium i Objective-C do tworzenia aplikacji, radzę trzymać się natywnego zestawu narzędzi. Nauka zajmie więcej czasu, ale nauczysz się prawidłowych wzorców projektowych w przeciwieństwie do Titanium, który nie nauczy Cię dobrych wzorców JS, aby być szczerym (naprawdę niewiele MVC).

+0

Zgadzam się na punkt. Nie zapominaj, że tablety z Androidem działają w różnorodnym zestawie dostawców i cen. Jak na razie wiemy, że niektóre wielkie marki, takie jak Sony i Dell, wprowadzają takie urządzenia jeszcze w tym roku. Niektóre problemy z jakością po stronie Androida są bezpośrednim skutkiem bardziej otwartej platformy i znacznie luźniejszej reguły zatwierdzania sklepu. Mniejszy rynek jest także liderem wśród najlepszych programistów, którzy koncentrują się na iPhone'ie. Wraz ze wzrostem liczby urządzeń z Androidem może to ulec zmianie, zwłaszcza jeśli Apple pozostanie tak zamknięty, jak teraz. –

+0

Tom, zgadzam się, że Android będzie się rozwijał i może zachęcić niektórych większych deweloperów wcześniej, niż później. Niemniej jednak mówiłem więcej z punktu widzenia interfejsu użytkownika i uważam, że interfejs użytkownika iPhone'a jest lepszy od Androida, do punktu, w którym ta sama aplikacja będzie bardziej intuicyjna w systemie iPhone OS niż w systemie Android. –

+0

Zgadzam się, że aplikacje na iPhone'a wyglądają i czują się lepiej niż te na Androida. Napisałem kilka aplikacji na Androida i nigdy nie posiadałem iPhone'a, ale gdy widzę podobną aplikację na iPhonie, jest znacznie bardziej przejrzyste i łatwiejsze w obsłudze. Jednak myślę, że przyszłość Androida nie jest widżetami, ale integracją aplikacji korporacyjnych. Sama liczba telefonów z Androidem sprawi, że będzie to platforma preferowana przez firmy, które chcą zapewnić swoim pracownikom mobilne wersje swoich aplikacji biznesowych. Będą one zachowywać się bardziej jak aplikacje biurowe niż widżety whizzy, negując zalety iPhone'a. –

0

Jeśli zdecydujesz się przejść na trasę Celu-C, pomyśl o wciąż zdobywaniu łupów w MonoTouch, jako narzędziu do nauki, ze względu na całe doświadczenie z C#.

Umiejętność uczenia się ram, a następnie przechodzenia na język upraszcza proces uczenia się. Dzięki monotouch będziesz mógł nauczyć się wszystkich frameworków iPhone'a, których musisz się nauczyć (UIKit, itp.) W języku, który już znasz, a także przyzwyczaić się do takich narzędzi jak Builder interfejsu i niektóre z XCode.

Podnoszenie Obj-C po zapoznaniu się z dobrze wykonaną ramą sprawia, że ​​rzeczy są łatwiejsze. Robię to teraz. A w zależności od osi czasu, księżyca i nastroju Steve'a Jobsa, może się okazać, że w końcu nie musicie iść do Obj-C w ogóle .. :)

+0

Języki mi nie przeszkadzają. Dostarczyłem znaczące systemy przy użyciu Basic, Pick Basic, COMAL (stary ustrukturyzowany wariant podstawowy), COBOL, Fortran (począwszy od bardzo starego Fortran IID na maszynie z dziurkaczem IBM 1620), C, C++, Lisp, Prolog, Pascal, Delphi , VB, Java, VB.NET, C# i wiele form asemblera. Programowałem też na różnych platformach - Commodore 64, TI 99/4a, Apple II, Amiga, HP3000, IBM mainframe, PC, Mac, Unix, Linux, Windows i różne dziwne jednostki, takie jak niestandardowe kontrolery pieców do wytapiania. Platforma wydaje się być większą krzywą uczenia się. Języki to tylko cukier. –

+0

Jak mogłeś pominąć Clipper'87 ??? :) –

0

W jednym z waszych komentarzy państwo że jesteś właścicielem Droida, uwielbiasz go i wolisz podejście Google. W swoim pytaniu stwierdzasz, że jesteś programistą Java - oczywiście, możesz zawsze nauczyć się Objective-C jako programisty Java tak jak ja, ale znowu jestem zakochany w iPhonie. Wygląda na to, że jesteś całkowicie zakochany w systemie Android, więc powiedziałbym, że zastosuj swoją pasję i stwórz kilka aplikacji na Androida. Nie sądzę, że zrobiłbyś tak dobrze na iPhonie, zwłaszcza bez wielkiego zrozumienia i pasji do platformy.

Powiązane problemy