Tag Archives: ios

Política de Transporte de Seguridad en IOS 9 | NSAppTransportSecurity

NSAppTransportSecurity

A partir de la versión 9 del sistema operativo IOS se implemento de fabrica la Política de Transporte de Seguridad que evita que una aplicación pueda hacer una petición http a una url insegura (permitiendo únicamente peticiones vía https).

Dicho comportamiento podremos observarlo con el siguiente error:

Connection failed: Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x7fada0f31880 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}, NSErrorFailingURLStringKey=MyServiceURL, NSErrorFailingURLKey=MyServiceURL, NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.}

Para evitar la política de transporte de seguridad existen dos métodos a través del archivo de configuración info.plist de tu aplicación:

Método 1: Permitir acceso a cualquier url no segura (NSAllowsArbitraryLoads)

  • Abrir tu archivo info.plist
  • Crear un row del tipo dictionary con el nombre NSAppTransportSecurity
  • Dar click a la entrada NSAppTransportSecurity y crear un row de tipo Boolean con el nombre NSAllowsArbitraryLoads y el valor YES

Debería quedar así:

NSAllowsArbitraryLoads

Método 2: Permitir acceso a un dominio específico (NSExceptionDomains)

  • Abrir tu archivo info.plist
  • Crear un row del tipo dictionary con el nombre NSAppTransportSecurity
  • Dar click a la entrada NSAppTransportSecurity y crear un row de tipo dictionary con el nombre NSExceptionDomains
  • Dar click a la entrada NSExceptionDomains y crear un row de tipo dictionary con el nombre del dominio que vas a utilizar (ejemplo tudominio.com)
  • Dar click a la entrada tudominio.com y crear un row de tipo Boolean con el nombre NSExceptionAllowsInsecureHTTPLoads y el valor YES
  • Dar click nuevamente a la entrada tudominio.com y crear otro row de tipo Boolean con el nombre NSIncludesSubdomains y el valor YES

Debería quedar así:

NSExceptionDomains

Después de esto podrás conectarte de manera satisfactoria a la url que deseabas acceder.

Tiempo de validación en la App Store

Captura de pantalla 2016-01-03 a las 1.01.16 a.m.

Quiero compartir con ustedes un recurso muy interesante que encontré en la red, mediante el cual puedes tener un estimado del tiempo de revisión por parte de Apple al subir tu aplicación en la AppStore.

Para esto se toma el feedback de la comunidad en indicar los tiempos en que tardaron sus aplicaciones en ser revisadas y se realiza un promedio del mismo.

La pagina muestra la información de las aplicaciones para iPhone / iPad y para MacOS:

http://appreviewtimes.com/ 

Diplomados / cursos Gratis!!!

cursos gratis

El día de hoy quiero recomendarles algunos enlaces donde podrán encontrar cursos y diplomados gratis.

Para comenzar, recomendarles 8 diplomados que están siendo promocionados por Google a través de Universidades Españolas (http://www.google.es/landing/activate/formate/):

http://www.oyejuanjo.com/2015/10/8-diplomados-online-gratis-ofrecidos-google.html?m=1

Así mismo darles un enlace con cursos promocionados por Microsoft a través de https://www.edx.org:

http://www.oyejuanjo.com/2015/10/cursos-gratis-programacion-dictados-microsoft.html

Y finalmente recomendarles dos páginas que estoy siguiendo para mi formación:

  1. Coursera: la primera es una pagina donde puedes hacer cursos y/o diplomados que son avalados por universidades reconocidas, en dichas paginas puedes acceder de manera gratuita al material de los mismos y solo debes realizar un pago si quieres obtener un certificado que avale el mismo.
  2. Udemy: la segunda es una página donde puedes obtener cursos gratis o a bajos costos por personas que con mucho esmero preparan material para capacitarte en distintas áreas.

Actualmente estoy capacitándome en SWIFT para IOS en ambas páginas a través de los siguientes links:

No me queda mas que desearles: Manteneos hambrientos, manteneos atolondraos

Primeros pasos con Objetive-C

wpid-objeec.png

Me di a la tarea de aprender a programar en objetive-c para IOS (iPhone, iPad y MacOS) y me gustaría compartir con ustedes algunas de mis experiencias.

Para tener un punto de inicio comencé bajando unos libros en formato iBooks de Juan M. Cigarran y publicando el código fuente de los ejercicios en github.
Actualmente me encuentro haciendo como practica una calculadora exactamente igual a la que trae consigo el iPhone y me he encontrado algunos de los siguientes inconvenientes:
  • Conocer algunos de los tipos de datos básicos
  • Crear un metodo
  • Llamar a un metodo
  • Hacer conversiones de NSString a double
  • Concatenar dos NSString

Para facilitarles un poco el trabajo les comparto el aprendizaje adquirido:

Conocer algunos de los tipos de datos básicos

Dentro de objetive-c existen tipos primitivos (algunos heredados de c) como int, double, NSInteger, boolean por lo que no hay que reservar espacio de memoria para ellos y objetos donde es necesario reservar espacio de memoria dinámico e inicializarlos; por ejemplo para manejar cadenas tenemos el tipo NSString (cadenas inmutables) y NSMutableString (cadenas que pueden modificarse).
Algunos ejemplos de declaraciones de variables son:
NSString *stack;
double operando;
NSInteger x;

Crear un metodo

Para crear un método se utiliza la siguiente sintaxis
-(void)metodo:(int)primerParametro{
//bla bla bla
}
  • Donde el menos ( – ) indica que es un metido de instancia y el ( + ) indicaría que es de Clase.
  • Entre parentesis va el tipo de retorno del metodo, en caso de no retornar nada se utiliza la palabra reservada void
  • Luego viene el nombre del método
  • Posteriormente el tipo de dato del primer parámetro entre paréntesis
  • Finalmente el nombre del primer parámetro