2012-05-05 22 views
11

Mam już opracowaną w pełni funkcjonującą stronę internetową, a nasz zespół chce wyeksportować tę stronę do aplikacji na iPhone'a (i ewentualnie innych platform). Najlepszym przykładem, jaki mogę dać, jest to, że zasadniczo stworzyłem Facebooka, teraz chcę stworzyć aplikację Facebooka (tę, która jest uruchamiana z ekranu głównego iPhone'a, a nie z przeglądarki). Oczywiście mamy już tę funkcjonalność i musimy ją przekonwertować na inną platformę. Jak trudne to jest? Czy będziemy musieli stworzyć całkowicie nowy program i zasadniczo zignorować cały istniejący kod PHP, który już posiadamy? Aplikacja zasadniczo będzie taka sama jak strona internetowa, z wyjątkiem kilku zmian układu. Możemy chcieć, aby był w stanie uzyskać dostęp do funkcji kamery i na pewno móc przesłać zdjęcie, co moim zdaniem wyklucza aplikację mobilną? Nadal nie rozumiem rozróżnienia między tworzeniem aplikacji mobilnej a aplikacją uruchamianą z ekranu głównego iPhone'a. Czy macie jakieś sugestie, od czego zacząć i jak trudne to wszystko będzie? Jeśli uda nam się uzyskać pożądaną funkcjonalność i ułatwić sobie korzystanie z istniejącego kodu, będziemy zachwyceni.Tworzenie aplikacji mobilnej z istniejącej strony internetowej

Dzięki

+0

Jak dobrze znasz cel c? –

+0

Niewiele, mam dobre tło w C++ i mam ogólne pojęcie o tym, gdzie Ob-C się różni, itd. –

Odpowiedz

9

Zacznijmy podstawy.

Witryna mobilna to strona internetowa, do której można uzyskać dostęp za pomocą przeglądarki telefonu. Strony HTML są podawane z serwera WWW (a interfejs jest zoptymalizowany pod kątem układu telefonu).

Aplikacja natywna (często określana jako "aplikacja") jest zasadniczo aplikacją wykonywalną, która jest pobierana do telefonu. W przypadku iPhone'a są one napisane w Objective-C. W przypadku Androida są napisane w Javie. Dla Windows Mobile są one napisane w języku C# itp

Oto zła wiadomość stoją:

-W zamówienie dla danej aplikacji, aby uruchomić z „ekranie głównym” iPhone musi być skompilowany przy użyciu Objective C. To samo z Androidem/Javą.

- Aby uzyskać dostęp do kamery, należy ją skompilować przy użyciu funkcji C (lub Java dla systemu Android).

Więc oto kilka dobrych wiadomości dla Ciebie:

-Można łatwo napisać natywną aplikację być czysto UI front-end i zadzwonić do istniejącego kodu po stronie serwera przy użyciu modelu REST API dla logiki biznesowej. Musisz tylko ujawnić funkcjonalność, której potrzebujesz, aby narazić się na działanie aplikacji. Jest to 1 sposób na ponowne wykorzystanie istniejącej podstawy kodu i uproszczenie aplikacji. Istnieją dobre frameworki Objective C, takie jak RESTKit, które sprawiają, że jest to łatwe.

-Możesz sprawić, że twoja aplikacja będzie naprawdę kiepska i zasadniczo sprawi, że będzie to przeglądarka internetowa dla Twojej witryny, ale to może nie zostać zatwierdzone przez Apple, jeśli nie dostosujesz go do iPhone'a w pewien sposób. Będzie to niekorzystne dla użytkowników iPhone'a, którzy oczekują, że aplikacja będzie działać jak aplikacja. Nie polecałbym tego.

-Jeśli planujesz udostępnić na wielu platformach lub naprawdę nie chcesz, aby utrzymywał projekt Celu C (i projekt Java w przyszłości), możesz użyć czegoś takiego jak PhoneGap, Appcelerator Titanium lub Sencha Touch . Są to owijki, które przyjmą aplikację napisaną w technologiach internetowych (HTML 5) i skompilują je do natywnych aplikacji. Te aplikacje HTML5 mogą uzyskać dostęp do kamery itp. Twoi istniejący deweloperzy nie muszą uczyć się Objective-C i mogą używać swoich umiejętności HTML/JavaScript, które już posiadają. Istnieje wiele zalet tych technologii. Minusem jest to, że Twoja aplikacja nie wygląda/czuje się tak dobrze, jak natywna aplikacja lub nie korzysta z "fajnych" funkcji telefonu. Będzie działał jak dobra witryna mobilna. Jeśli masz dobrych użytkowników interfejsów/projektantów, możesz stworzyć coś całkiem dobrego za pomocą tych technologii internetowych. Ale jeśli chcesz tylko emulować stronę internetową w natywną aplikację (a nie tworzyć następnej gry typu killer), to prawdopodobnie jest to Twój najlepszy wybór z wielu powodów.

Jeśli używasz aplikacji natywnej google zamiast phonegap (lub sencha touch), masz mnóstwo informacji o zaletach i wadach. To prawdopodobnie dobre miejsce do rozpoczęcia nauki.

+0

Ok, świetnie. To jest właśnie to, do czego doprowadziły mnie moje badania, czasami ludzie używają lekko słowa "aplikacja", i nie zawsze jestem pewien, czy mówią o natywnej aplikacji, którą można rozpowszechniać, czy po prostu stronie mobilnej, zasadniczo . –

0

To zależy. Zasadniczo możesz używać interfejsu UIWebViews i niestandardowego arkusza stylów, aby aplikacja była tylko portalem do strony internetowej, co, jak sądzę, ma aplikacja Facebook. Nie będzie działać tak dobrze, jak prawdziwie natywna aplikacja, ale może dobrze służyć twoim celom przy mniejszych nakładach na konserwację.

1

patrz pkt 2.12 z App Store Przegląd Guideliness

https://developer.apple.com/appstore/resources/approval/guidelines.html#functionality

... Aplikacje, które są po prostu strony internetowe wiązane jako ... aplikacje mogą zostać odrzucone

+0

Jakiej zróżnicowanej aplikacji facebookowej się kwalifikujesz? –

+0

Facebook dostosował swoją aplikację do telefonu, mimo że działa w przeglądarce internetowej. Jeśli ich natywna aplikacja była tylko przeglądarką internetową wskazującą na ich normalną stronę internetową, zostałaby odrzucona. Jednak ich natywna aplikacja i pakiet SDK wciąż są dość kiepskie dla firmy dysponującej zasobami. – Joel

2

Oprócz dobrej odpowiedzi @Joel, powinieneś najpierw zrozumieć, jakie funkcje powinieneś zaoferować użytkownikowi, jeśli najważniejsza funkcja będzie dostępna do oglądania strony tylko przy użyciu UIWebView, aby móc dystrybuować aplikacja w sklepie, jak @Teofilo powiedział it is not allowed. Obecnie istnieją różne rozwiązania do tworzenia aplikacji wieloplatformowych (np. PhoneGap), które umożliwiają tworzenie aplikacji dla różnych platform za pomocą technologii takich jak html5, ajax itp. Za pośrednictwem UIWebViews.
To zależy od rodzaju funkcji, jaką chcesz zaoferować użytkownikowi, wydajność będzie z pewnością najlepsza w przypadku rozwoju rodzimego, ponieważ masz większą kontrolę nad aplikacją i urządzeniem, ale możesz nadal być wygodny w użyciu rozwiązanie wieloplatformowe, jeśli wspólne funkcje są łatwe do wdrożenia, w celu uzyskania tego samego wyniku na różnych platformach. Również nie ma znaczenia, z jakiego rodzaju technologii korzystasz na zapleczu, ważne jest używanie standardowego formatu/protokołu do komunikacji (np. Http/json). To tylko mój punkt widzenia, mam nadzieję, że ktoś może wyrazić swoją opinię na ten temat, ponieważ zauważyłem, że jest bardzo powracający dzisiaj.
Jednak dobre pytanie.

Powiązane problemy