¿Cuáles son los conceptos de programación de iOS que todo desarrollador de iOS debe saber?

Los conceptos que enumeró son un buen comienzo. Excepto quizás por el n. ° 2, debes saber la respuesta a todo esto como desarrollador de iOS. No dice cuánto tiempo ha estado codificando, pero supongo que comenzó hace poco. ¡Nada de malo con eso! Sin embargo, estas preguntas serían más apropiadas para un sitio como Stack Overflow. Sin embargo, intentaré responderles brevemente aquí.

1. Un protocolo declara métodos, pero no los implementa. Decimos que una clase “adopta” un protocolo cuando implementa los métodos del protocolo. Quizás se esté preguntando cuál es el propósito de esto: comprender, considerar un objeto de interfaz de usuario, decir una vista de tabla. Cuando el usuario toca una determinada fila de la tabla, la aplicación debe poder manejar ese toque (para mostrar una vista detallada, lo más probable). En iOS, esto se puede lograr mediante la delegación. Establecemos nuestra clase personalizada (que no tiene una relación inherente con la vista de tabla) como el “delegado” de la vista de tabla. Luego, hacemos que nuestra clase personalizada adopte el protocolo UITableViewDelegate. Ahora, la vista de tabla puede llamar a un método definido en el protocolo (por ejemplo, para permitir que el programa maneje al usuario tocando una celda) y estar seguro de que nuestra clase personalizada implementa ese método.

3. Se usan indistintamente. Una actualización rápida de OOP: una clase es como una plantilla; define métodos y propiedades. Puede crear varios objetos / instancias de la clase, todos los cuales tienen los mismos métodos y propiedades, pero probablemente tienen valores diferentes para estas propiedades.

4 y 5. Solo puede llamar a un método de instancia en una instancia (objeto) de una clase. Esto normalmente se debe a que el método de instancia recupera información de esta instancia en particular o la modifica. Sin embargo, un método de clase solo se puede invocar en la clase (recuerde, la plantilla) en sí. Un método de clase típico podría devolver una nueva instancia de la clase, configurada de una manera particular. O si solo hay una instancia global de la clase (un singleton), se usaría un método de clase para recuperarla.

6. Nunca debe declarar una @property en la sección @implementation de una clase. Las variables son aceptables, pero todas las declaraciones de @property deben hacerse en una de las secciones de @interface. Tenga en cuenta que si desea que una propiedad @ sea privada (no accesible para los usuarios de la clase), debe declararla en la categoría @interface (), que generalmente se coloca en la parte superior de su archivo .m. Esto es independiente de la sección @interface en su archivo .h, donde todo es público. Esta forma de hacer que las propiedades sean públicas versus privadas es una peculiaridad de Objective-C; la mayoría de los otros idiomas (incluido Swift) le permiten simplemente usar un especificador “privado”.

Si desea entrar en la codificación, hay posibilidades de que se encuentre con varios problemas que podrían ser desalentadores, principalmente en tutoriales debido a su falta de experiencias previas en programación. Incluso las clases de programación para principiantes pueden parecer difíciles si no conoce los conceptos básicos de programación mencionados a continuación.

Inicialmente, varias preguntas vienen a la mente. Como cómo programar o qué cursos de programación para principiantes podrían ser útiles. Hay varias fuentes en línea que lo ayudarán con la pregunta posterior; Aquí discutiremos la consulta anterior.

La programación informática o, en resumen, la programación es un proceso que parte de la formulación de un problema informático para ser ejecutado por programas informáticos. Un código fuente está escrito en uno o varios lenguajes de programación.

Echa un vistazo: 8 conceptos de programación que debes saber en 2017 | Noticias de moda

Honestamente, la mayoría de sus preguntas son conceptos básicos de programación, no solo desarrollo de iOS.

Conocimiento específico de iOS que creo que todos deberían saber:

+ UIViewController frente a un UIXViewController específico (contras / pros)
+ UITableView vs UICollectionView
+ Bloques
+ Delegados / Protocolos
+ Débil vs Fuerte vs asignar / no atómico vs atómico
+ Clases de reenvío
+ Hilo principal vs hilo de fondo
+ Encontrar pérdidas de memoria / ciclos de retención en ARC
+ NSNotifications
+ NSUserDefaults vs Storage (implementación de CoreData o Sqlite3)
+ Redes / API
+ Transiciones animadas personalizadas
+ Storyboard vs NIB vs Código

Parece que estás tratando de aprender viendo varios tutoriales en youtube. Lo que recomendaría es un buen libro o dos. Repasan todos estos conceptos y más, además de proporcionar ejercicios de programación para evaluar lo que ha aprendido.

Sé que este no es específico para iOS, pero ciertamente cubre los conceptos que mencionas anteriormente. Luego puede usar estos conceptos en sus aplicaciones iOS:

Amazon.com: Programación de Cocoa para Mac OS X (4a edición) (9780321774088): Aaron Hillegass, Adam Preble: Libros

No he leído este, pero es del mismo autor, y es específico de iOS, lo que podría ser un buen seguimiento.

Programación de iOS: Guía de Big Nerd Ranch (4a edición) (Guías de Big Nerd Ranch): Joe Conway, Aaron Hillegass, Christian Keur: 9780321942050: Amazon.com: Libros

Espero que ayude … ¡buena suerte!

La siguiente es la lista de conceptos fundamentales de programación que son esenciales para un desarrollador de iOS:

1. Xcode y generador de interfaces

2. Toque de cacao

3. Vistas de tabla

4. Ver controladores

5. Storyboards y Segues

6. Diseño automático

7. Codificación de valor clave y notificaciones

Fuente:

Conceptos de programación que todo desarrollador de iOS debe saber

Me han hecho esta pregunta en cada entrevista telefónica para el puesto de iOS.

“¿Utiliza storyboard, xib o código para crear su interfaz de usuario?”

Soy honesto sobre el uso de storyboard para mi propio proyecto, pero entiendo el beneficio y la necesidad de xib y código.

Consulte esta lista de recursos: ¿Cuáles son los mejores recursos (sitios, libros o tutoriales) para la programación de aprendizaje?
Hay una sección dedicada al desarrollo de iOS.