2012-05-05 32 views
11

ya he desarrollado un sitio web completamente funcional, y nuestro equipo está tratando de exportar este sitio para una aplicación iPhone (y eventualmente otras plataformas). El mejor ejemplo que puedo dar es que básicamente hice Facebook, ahora quiero hacer la aplicación de Facebook (la que se lanza desde la pantalla de inicio de un iPhone, no desde el navegador). Entonces, obviamente, ya tenemos la funcionalidad, y solo tenemos que convertirla a otra plataforma. ¿Qué tan difícil es esto? ¿Tendremos que hacer una pieza de software completamente nueva e ignorar básicamente todo el código PHP existente que ya tenemos? La aplicación básicamente será la misma que la del sitio web, excepto por algunos cambios de diseño. Es posible que deseemos poder acceder a la función de cámara y definitivamente poder subir una imagen, lo que creo que descartaría una aplicación móvil. Todavía no entiendo la delineación entre hacer una aplicación móvil y una aplicación que se inicia desde la pantalla de inicio de un iPhone. ¿Tienen alguna sugerencia sobre por dónde empezar y qué tan difícil será todo esto? Si podemos obtener la funcionalidad que queremos y hacer que sea más fácil para nosotros utilizando el código existente, estaríamos encantados.hacer una aplicación móvil desde un sitio web existente

Gracias

+0

¿Qué tan bien conoce objetivo-c? –

+0

No mucho, tengo algunos buenos antecedentes de C++ y tengo una comprensión general de dónde difiere Ob-C, etc. –

Respuesta

9

Vamos a empezar con los basicos.

Un sitio móvil es un sitio web al que se accede a través del navegador web del teléfono. Las páginas HTML se sirven desde un servidor web (y la interfaz de usuario está optimizada para el diseño del teléfono).

Una aplicación nativa (a menudo referido como "aplicación") es esencialmente una aplicación ejecutable que se descarga en el teléfono. Para iPhone, están escritos en Objective-C. Para Android están escritos en Java. Para Windows Mobile están escritos en C#, etc.

Aquí está la mala noticia que se enfrentan:

-Para para su aplicación para el lanzamiento de la "pantalla inicial" del iPhone debe ser compilado usando Objetivo C. Lo mismo con Android/Java.

-Con el fin de acceder a la cámara, que necesita ser compilado usando Objective C (o Java para Android).

Así que aquí hay algunas buenas noticias para usted:

-Se puede escribir fácilmente su aplicación nativa para ser un front-end puramente interfaz de usuario y llame a su código del lado del servidor existente utilizando un modelo API REST para la lógica de negocio. Solo tiene que exponer la funcionalidad que necesita para exponer a la aplicación. Así que esa es 1 manera de reutilizar la base de código existente y hacer la aplicación más simple. Hay buenos marcos de Objective C como RESTKit que hacen que esto sea bastante fácil.

-Podrías hacer que su aplicación realmente cursi y, esencialmente, lo convierten en un navegador web a su sitio, pero eso no puede ser aprobada por Apple si no personaliza para iPhone un poco. Y será una experiencia pobre para los usuarios de iPhone que esperan que una aplicación funcione como una aplicación. No recomendaría esto.

-Si planea lanzar en múltiples plataformas, o realmente no desea tener que mantener un proyecto Objective C (y proyecto Java en el futuro), podría usar algo como PhoneGap, Appcelerator Titanium o Sencha Touch . Estas son envolturas que tomarán una aplicación escrita en tecnologías web (HTML 5) y las compilarán en aplicaciones nativas. Estas aplicaciones HTML 5 pueden acceder a la cámara, etc. Sus desarrolladores actuales no tienen que aprender Objective-C y pueden usar sus habilidades de HTML/JavaScript que ya tienen. Hay muchas ventajas en estas tecnologías. La desventaja es que su aplicación no se verá ni se sentirá tan bien como una aplicación nativa o usará cualquiera de las características "geniales" del teléfono. Se comportará como un buen sitio web móvil. Si tiene una buena interfaz de usuario/gente de diseño, puede crear algo bastante bueno utilizando estas tecnologías web. Pero si solo buscas emular un sitio web en una aplicación nativa (y no crear el próximo juego asesino), entonces es probablemente la mejor opción por varias razones.

Si la aplicación nativa de google frente a phonegap (o sencha touch) hay mucha información sobre los pros y los contras. Ese es probablemente un buen lugar para que comiences a aprender.

+0

Ok, genial. Eso es algo de lo que mi investigación me llevó a creer, a veces la gente usa la palabra "aplicación" a la ligera, y no siempre estoy seguro si se trata de una aplicación nativa que se puede distribuir o simplemente un sitio móvil, esencialmente . –

0

Depende. Básicamente puede usar UIWebViews y una hoja de estilo personalizada para hacer que la aplicación sea solo un portal para el sitio web, lo que creo que es la aplicación de Facebook. No funcionará tan bien como una aplicación verdaderamente nativa, pero puede servir a sus propósitos bien con menos mantenimiento.

1

Ver cláusula 2.12 del App Store revisión Guideliness

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

... Aplicaciones que son simplemente sitios web agrupados como aplicaciones ... pueden ser rechazados

+0

¿Qué diferencia de la aplicación de Facebooks para calificar? –

+0

Facebook personalizó su aplicación en el teléfono, aunque se ejecuta en un contenedor web. Si su aplicación nativa fuera solo un navegador web que apunta a su sitio web normal, sería rechazada. Sin embargo, su aplicación nativa, y SDK, todavía son bastante cojo para una empresa con sus recursos. – Joel

2

Además de la buena respuesta de @Joel, primero debe comprender qué tipo de características debe ofrecer al usuario, si la característica principal solo podrá ver el sitio web usando UIWebView solo para poder distribuir el aplicación en la tienda, como @Teofilo dijo it is not allowed. Actualmente existen diferentes soluciones para desarrollar aplicaciones multiplataforma (es decir, PhoneGap), que le permiten desarrollar aplicaciones para diferentes plataformas utilizando tecnologías como html5, ajax, etc. a través de UIWebViews.
Depende del tipo de funcionalidad que desee ofrecerle al usuario; sin dudas, el rendimiento será mejor en caso de desarrollo nativo, porque tendrá más control sobre la aplicación y el dispositivo, pero puede ser conveniente usarlo una solución multiplataforma si las características compartidas son fáciles de implementar, para obtener el mismo resultado en diferentes plataformas. Además, no importa qué tipo de tecnología use en el back-end, lo importante es usar formatos/protocolos estándar para la comunicación (es decir, http/json). Este es solo mi punto de vista, espero que alguien pueda dar su punto de vista sobre este tema, porque noté que es muy recurrente hoy.
Sin embargo, buena pregunta.

Cuestiones relacionadas