Entradas

Mostrando entradas de 2015

Titanium - Subir ficheros a FTP desde Android e iOS

Este es el código a utilizar para poder subir ficheros a un FTP, tanto en Android como en iOS, con Titanium:

Titanium - Label animation

var view; var text; var footerViewDisp = function() {         view = Ti.UI.createView({         backgroundColor: '#A680b82b',         height: 40     });         text = Ti.UI.createLabel({         text: "Cargando...",         left: 20,         color: '#618233',         font: {             fontFamily:'HelveticaNeue-Light',             fontSize: 15         }     });     view.add(text);         view.addEventListener('click', function (e){         myLoaderDisp();     });         return view; }; function myLoaderDisp(){         Ti.API.debug("myLoaderDisp");     var matrix = Ti.UI.create2DMatrix();       //matrix = matrix.rotate(180);       matrix = matrix.scale(0.9, 0.9);       var a = Ti.UI.createAnimation({         transform : matrix,         duration : 800,         autoreverse : true,         repeat : 2       });           text.animate(a);           a.addEventListener("complete",functio

Titanium - Error compilación iOS Error: Write EPIPE

Compilando por consola para distribuir una app en iOS, me ha aparecido muchas veces el siguiente error, el cuál me ha costado días en resolver. Parece que es un error que lanza nodejs. Ponogo las soluciones que he tenido que implementar en cada caso para que no os pase lo mismo: El error es: Error: write EPIPE     at errnoException (net.js:905:11)     at Object.afterWrite (net.js:721:19) Las soluciones: La primera vez tuve que bajar la version de node a v0.10.7 y funcionó La segunda vez no funcionaba bajando la version de node, así que la solución (después de 3 días de buscar) fué cambiar el guid de la app en Titanium. Esa tontería. Lo comentas y al compilar te dice que la falta el guid y te aparecen de ejemplo, copias uno y lo añades. El error se ha eliminado.

Archivos a comprobar cuando un módulo de Titanium no compila

Cuando un módulo de Titanium no compila, se deben comprobar los siguientes ficheros: En iOS: build.py: Crear un módulo nuevo y copiar lo que aparece en el módulo nuevo, teniendo en cuenta que cambian 3 nombres (2 los del fichero js y uno el de assets.m) que corresponden con el nombre del módulo. titanium.xcconfig: copiarlo entero del módulo nuevo. manifest: compararlo con el del módulo nuevo a ver si alguna cosa difiere. En Android:  Comprobar los jars si los encuentra o la ruta ha cambiado. Si ha cambiado, volverlos a añadir. build.properties: cambiar las rutas.

Experiencia personal utilizando Appcelerator (Titanium)

Después de 6 meses desarrollando apps en Titanuim con el Appcelerator Studio en un Mac, creo que es hora de poder opinar sobre sus ventajas e inconvenientes, o sobre mi experiencia al tener que trabajar en esta plataforma por el lugar de trabajo que ocupo. La verdad es que esta plataforma sí que crea las apps en estilo nativo y es bastante fácil, una vez has aprendido los lenguajes que requiere (js, css, xml), poder realizar algo sencillo que funcione en las dos plataformas sin que se note que no está programado con las plataformas nativas. Empezando por el Studio, en mi Mac funciona fatal (Mac mini moderno, con características muy pontentes). Se quedan los procesos colgados y me va todo a pedales. Cada dos por tres se cierra el programa y incluso se llega a cerrar de momento el ordenador porque está soportando una carga muy grande. Tarda, a veces, 20min en compilar una app y no me deja ni abrir pestañas en el navegador mientras lo está haciendo. Esto ocurre muy a menudo, c

Titanium - Posición GPS

Como obtener tu posición: Ti.Geolocation.preferredProvider = "gps" ; Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_BEST ; Titanium.Geolocation.distanceFilter = 10 ; // // GET CURRENT POSITION - THIS FIRES ONCE // var longitude, latitude ; Titanium.Geolocation.getCurrentPosition( function (e) {     if ( ! e.success || e.error) {         Ti.API.info( 'error:' + JSON.stringify(e.error)) ;         return ;     }     longitude = e.coords.longitude ;     latitude = e.coords.latitude ;     var altitude = e.coords.altitude ;     var heading = e.coords.heading ;     var accuracy = e.coords.accuracy ;     var speed = e.coords.speed ;     var timestamp = e.coords.timestamp ;     var altitudeAccuracy = e.coords.altitudeAccuracy ;     Titanium.API.info( 'geo - current location: ' + new Date(timestamp) + ' long ' + longitude + ' lat ' + latitude + ' accuracy ' + accuracy) ; }

Slide Menu con efectos divertidos

Un slide menu con efectos "chulos" para dotar a nuestra app de algo especial. https://github.com/ECSlidingViewController/ECSlidingViewController

LaunchKit - Crear capturas de tu app en todos los tamaños

Imagen
https://launchkit.io/

SVN en XCode 6

Tutorial en castellano para integrar SVN en el XCode: http://iosmac.es/control-de-versiones-en-svn-para-xcode-6.html#

Hex a UIColor con transparencia

Algoritmo para pasar de Hexadecimal a UIColor un color que tenga transparencia. - ( UIColor *)toUIColor: ( NSString *)hex  {          unsigned int c;          if ([hex characterAtIndex : 0 ] == '#' ) {                  [[ NSScanner scannerWithString :[hex substringFromIndex : 1 ]] scanHexInt :&c];              } else {                  [[ NSScanner scannerWithString :hex] scanHexInt :&c];              }          float alpha = ((c & 0xff000000 ) >> 24 )/ 255.0 ;          if (alpha == 0.0 ) { //no tiene transparencia         alpha = 1.0 ;     }          return [ UIColor colorWithRed :((c & 0xff0000 ) >> 16 )/ 255.0 green :((c & 0xff00 ) >> 8 )/ 255.0 blue :(c & 0xff )/ 255.0 alpha :alpha];      }

Fuentes de iOS (UIFont)

Link donde están todas las fuentes que se pueden utilizar en XCode:  http://iosfonts.com/ Ejemplo de uso:   [ tuLabel setFont :[ UIFont fontWithName : @"BradleyHandITCTT-Bold" size : 20 ]];

Recursos para Swift

https://github.com/matteocrippa/awesome-swift

Librería para crear un lector de RSS

La he probado y funciona muy bien. Está todo muy bien explicado en la documentación y en el proyecto demo de ejemplo. https://github.com/mwaterfall/MWFeedParser Aquí una guía de como crear el tuyo propio:  http://www.migueldiazrubio.com/2013/04/23/desarrollo-ios-crea-tu-propio-lector-rss/#

Repositorio de GitHub con todos los ejemplos de Apple

GitHub con todos los ejemplos de Apple que están en la documentación. Va muy bien porque están todos recogidos en el mismo sitio.  https://github.com/robovm/apple-ios-samples

Mejor forma de probar las apps de iOS sin necesidad de subirlas al Market

Imagen
De todas las formas posibles, esta que os adjunto es una de las más rápidas y fáciles, ya que con testflight también te tienen que revisar la app y tardan varios días. Aquí hay que seguir unos sencillos pasos y al instante tienes la app instalada en cualquier dispositivo. - Enlace oficial: (apartado Distributing Your App Using Ad Hoc Provisioning )  https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html -Pasos resumidos:  The steps are similar to TestFlight beta testing, except that you register test devices, and instead of uploading your app to iTunes Connect, you export an archive as an  iOS App  (a file with a  .ipa  filename extension) and distribute it for testing:         ( Primero hay que crear un Provisioning Profile de tipo AdHoc para que funcione) Optionally, create an iTunes Connect app record. -> Este no hace falta Register all test devices. -> Tener los dispositivo

Eliminar separadores en un TableView de las celdas libres

Con esta línea de código se eliminan los separadores de las celdas de una TableView que no se están utilizando, así cuando no se utilicen todas las filas de una tabla no se notará. Con esto la pantalla queda más elegante: self . tableView . tableFooterView = [[ UIView alloc ] initWithFrame : CGRectZero ];

XCode: Cómo renombrar tu app

Aquí unos sencillos pasos si quieres renombrar tu app: https://developer.apple.com/library/ios/qa/qa1625/_index.html

Iconos gratis iOS

27-03-2015  -  http://www.pixeden.com/free-icons-set  -  http://flaticons.net/  -  http://vectoricons.org/ 30-02-2015  -  http://www.iconbeast.com/free/ 02-04-2015  -  http://www.icondeposit.com/

Tutorial para entender el Use Size Classes

No es tarea fácil entender el use size classes, espero que esto os lo haga un poco más fácil: http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorial

Crear Slide Menu en iPhone o iPad

Ahora que todas las apps llevan un slide menú, aquí os dejo una librería que funciona perfectamente para crear uno. Muy fácil de utilizar y bastante personalizable. https://github.com/SocialObjects-Software/AMSlideMenu

Descargar imagen asíncronamente

- ( void )downloadImageWithURL:( NSURL *)url completionBlock:( void (^)( BOOL succeeded, UIImage *image))completionBlock {     NSMutableURLRequest *request = [ NSMutableURLRequest requestWithURL :url];     [ NSURLConnection sendAsynchronousRequest :request                                        queue :[ NSOperationQueue mainQueue ]                            completionHandler :^( NSURLResponse *response, NSData *data, NSError *error) {                                if ( !error )                                {                                    UIImage *image = [[ UIImage alloc ] initWithData :data];                                    completionBlock( YES ,image);                                } else {                                    completionBlock( NO , nil );                                }                            }]; } - ( NSString *) saveImage2:( NSString *)stringURL :( NSString *)name{          NSLog ( @"--- %s

Tutorial Swift

Con la llegada del nuevo lenguaje, aquí un buen tutorial básico: http://jamesonquave.com/blog/developing-ios-apps-using-swift-tutorial/

WebDav en apps

Esta es una buena librería para utilizar WebDav en una aplicación móvil. Yo la he utilizado y la verdad que es muy fácil de utilizar. Os dejo el link: https://github.com/leyleo/leowebdav

30+ Recursos útiles para iPhone Developers

Recursos de iconos gratis y plantillas. Efectos para menús y más cosas. http://www.3rank.com/resources-for-every-ios-developer/

Guía para crear todos los certificados de iOS y los .pem

Buena guía que explica paso a paso este proceso: http://stackoverflow.com/questions/21250510/generate-pem-file-used-to-setup-apple-push-notification

Conversor de Hex a UIColor

http://www.touch-code-magazine.com/web-color-to-uicolor-convertor/

WYPopoverController: Buena librería para poder tener un popover en todos los dispositivos

-Versión que funciona bien en iOS7 (falla en iOS8):  https://github.com/nicolaschengdev/WYPopoverController - Versión que ya funciona en iOS8:  https://github.com/sammcewan/WYPopoverController

Tamaños de los app icons y launch images

Imagen
Como no consigo aclararme con qué nombres se le tienen que poner a las diferentes imágenes, ni los tamaños ni nada, cada vez que lo tengo que poner es una odisea, os dejo los enlaces que me han ayudado por si os sirven. Si alguien lo sabe por favor que me diga dónde lo puedo ver. Porque no sé de dónde se lo ha sacado el chico del primer enlace... 1.  http://stackoverflow.com/questions/26754992/sizes-and-naming-of-launch-image-for-iphone-app-in-ios8 2.  https://developer.apple.com/library/ios/qa/qa1686/_index.html 3. No está mal este:  http://www.idev101.com/code/User_Interface/launchImages.html 30-03-2015 He encontrado esta página que explica bastante bien todos los tamaños: http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/ 31-03-2015 Definitvamente para los logos utilizo estos tamaños y esta nomenclatura (completo): 10-04-2015 Esta app te ayuda a saber de qué tamaño y qué nombre hay que ponerle a los iconos de las aplicaciones. Similar a lo de ar