Una introducción al desarrollo de aplicaciones en iOS usando Objective-C.
La mayor parte es explicación de conceptos de Objective-C para desarrolladores que vengan de .NET
Este documento proporciona una introducción a Visual C#.Net 2005. Explica los sistemas de tipos, clases, estructuras, arrays y matrices. También cubre la definición de clases, la instanciación de objetos y el manejo de excepciones mediante bloques try-catch.
Este documento introduce conceptos básicos de programación orientada a objetos como clases, objetos, atributos, operaciones, encapsulación y constructores. Explica que una clase define un tipo de datos definido por el usuario que puede crear múltiples objetos, y cada objeto tiene sus propios valores de atributos. También cubre temas como acceso público y privado, y cómo las clases deben diseñarse de manera descriptiva, simple y cohesiva.
El documento explica los conceptos básicos de la programación orientada a objetos en C++, incluyendo clases, objetos, encapsulamiento, constructores, destructores y punteros a objetos. Describe las características del modelo de objetos como abstracción, encapsulamiento, modularidad, jerarquía y polimorfismo.
Este documento introduce el tema de la programación orientada a objetos en C++. Explica que la POO permite modelar el mundo real de una manera más natural que los métodos de programación estructurada tradicionales. Describe algunos conceptos clave de la POO como objetos, clases, métodos, mensajes e implementaciones en C++ de propiedades como encapsulamiento, herencia y polimorfismo. El documento está dividido en capítulos que profundizan en estos temas para proveer una introducción al paradigma de programación orientada a objetos.
Este documento presenta información general sobre un curso de Java, incluyendo los profesores, índice del curso y bibliografía. Luego resume las características principales de Java como lenguaje interpretado, fuertemente tipado y portable. Finalmente, explica conceptos clave como el desarrollo en Java, compilación e interpretación, y comparativa con C++.
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...Jose Emilio Labra Gayo
Este documento presenta conceptos clave de la programación orientada a objetos como objetos, clases, métodos, encapsulación, polimorfismo, herencia y módulos. Explica que un objeto encapsula estado interno y métodos, y que las clases son plantillas que generan objetos. También describe conceptos como herencia, interfaces, traits y tipos de métodos y acceso.
El documento describe varios conceptos fundamentales relacionados con la programación, incluyendo la definición de programación, lenguajes de alto nivel, lenguajes de máquina y cómo se clasifican los lenguajes de alto nivel. También explica conceptos como lenguaje ensamblador, programación orientada a objetos, eventos y controladores del ambiente gráfico.
Este documento presenta el cronograma y agenda de un curso básico de C# impartido por Oscar Ortiz Pinzon de Microsoft Student Partners en Bogotá, Colombia. El cronograma incluye 7 sesiones entre el 7 de marzo y el 9 de mayo para cubrir temas como .NET Framework, C#, programación básica, orientada a objetos, estructuras de datos, aplicaciones Windows, bases de datos, y ASP.NET. La agenda para la primera sesión incluye introducciones a .NET, C# y conceptos básicos como variables, tipos de datos, entradas/sal
Este documento proporciona una introducción a Visual C#.Net 2005. Explica los sistemas de tipos, clases, estructuras, arrays y matrices. También cubre la definición de clases, la instanciación de objetos y el manejo de excepciones mediante bloques try-catch.
Este documento introduce conceptos básicos de programación orientada a objetos como clases, objetos, atributos, operaciones, encapsulación y constructores. Explica que una clase define un tipo de datos definido por el usuario que puede crear múltiples objetos, y cada objeto tiene sus propios valores de atributos. También cubre temas como acceso público y privado, y cómo las clases deben diseñarse de manera descriptiva, simple y cohesiva.
El documento explica los conceptos básicos de la programación orientada a objetos en C++, incluyendo clases, objetos, encapsulamiento, constructores, destructores y punteros a objetos. Describe las características del modelo de objetos como abstracción, encapsulamiento, modularidad, jerarquía y polimorfismo.
Este documento introduce el tema de la programación orientada a objetos en C++. Explica que la POO permite modelar el mundo real de una manera más natural que los métodos de programación estructurada tradicionales. Describe algunos conceptos clave de la POO como objetos, clases, métodos, mensajes e implementaciones en C++ de propiedades como encapsulamiento, herencia y polimorfismo. El documento está dividido en capítulos que profundizan en estos temas para proveer una introducción al paradigma de programación orientada a objetos.
Este documento presenta información general sobre un curso de Java, incluyendo los profesores, índice del curso y bibliografía. Luego resume las características principales de Java como lenguaje interpretado, fuertemente tipado y portable. Finalmente, explica conceptos clave como el desarrollo en Java, compilación e interpretación, y comparativa con C++.
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...Jose Emilio Labra Gayo
Este documento presenta conceptos clave de la programación orientada a objetos como objetos, clases, métodos, encapsulación, polimorfismo, herencia y módulos. Explica que un objeto encapsula estado interno y métodos, y que las clases son plantillas que generan objetos. También describe conceptos como herencia, interfaces, traits y tipos de métodos y acceso.
El documento describe varios conceptos fundamentales relacionados con la programación, incluyendo la definición de programación, lenguajes de alto nivel, lenguajes de máquina y cómo se clasifican los lenguajes de alto nivel. También explica conceptos como lenguaje ensamblador, programación orientada a objetos, eventos y controladores del ambiente gráfico.
Este documento presenta el cronograma y agenda de un curso básico de C# impartido por Oscar Ortiz Pinzon de Microsoft Student Partners en Bogotá, Colombia. El cronograma incluye 7 sesiones entre el 7 de marzo y el 9 de mayo para cubrir temas como .NET Framework, C#, programación básica, orientada a objetos, estructuras de datos, aplicaciones Windows, bases de datos, y ASP.NET. La agenda para la primera sesión incluye introducciones a .NET, C# y conceptos básicos como variables, tipos de datos, entradas/sal
La Programación Orientada a Objetos (POO) encapsula datos y funciones en unidades llamadas clases. Una clase define los atributos y métodos de un objeto. Los objetos de una clase comparten la misma estructura y comportamiento. El documento presenta ejemplos de clases Tiempo y Vendedor que definen objetos con atributos y métodos para representar tiempos y ventas respectivamente.
1) Las clases abstractas definen características comunes de clases derivadas pero no pueden crear objetos directamente. 2) Las clases abstractas pueden incluir métodos abstractos sin implementación que deben implementarse en clases derivadas. 3) Las interfaces definen métodos y constantes que las clases que las implementan deben incluir.
El documento explica los conceptos básicos de la programación orientada a objetos con C++, incluyendo clases, objetos, encapsulamiento, herencia, polimorfismo, constructores, destructores y sobrecarga de métodos. Se proporcionan ejemplos de cómo definir clases, crear objetos, y utilizar constructores y destructores para inicializar y liberar la memoria de los objetos.
El documento describe conceptos y operaciones básicas de arreglos unidimensionales y bidimensionales en C#. Explica cómo declarar, crear, inicializar y acceder a elementos de arreglos. También presenta ejemplos de aplicaciones como listas, vectores, matrices y el cálculo de la suma de dos matrices.
El documento presenta una introducción a la programación orientada a objetos (POO) en PHP. Explica que PHP 5 mejoró notablemente el soporte para POO, introduciendo conceptos como clases, herencia, métodos mágicos y excepciones. También define conceptos básicos de POO como clases, objetos, propiedades, métodos y niveles de acceso, e ilustra su uso con ejemplos como una clase para representar un automóvil.
El documento habla sobre el polimorfismo en Java. Explica que el polimorfismo permite referirse a objetos de diferentes clases mediante el mismo elemento de programa y realizar la misma operación de diferentes formas dependiendo del objeto. Menciona que existen tres técnicas de polimorfismo: sobrecarga de funciones y métodos, sobrescritura en la herencia e implementación de interfaces. Proporciona ejemplos de cada una.
Este documento introduce Java y sus características principales. Explica que Java es un lenguaje orientado a objetos, independiente de la plataforma y pequeño que puede correr en navegadores y dispositivos portátiles. También describe los tipos de datos básicos como números, caracteres, cadenas y arreglos, y conceptos de programación orientada a objetos como clases, herencia, constructores y métodos.
Este documento proporciona una introducción a Objective-C, incluyendo su sintaxis básica como números, cadenas, condicionales y bucles. También explica conceptos como clases, propiedades, métodos y mensajes. Por último, presenta brevemente patrones como MVC y el uso de tablas y mapas.
El documento habla sobre el polimorfismo en programación. Explica que el polimorfismo permite referirse a objetos de diferentes clases mediante el mismo elemento de programa y realizar la misma operación de diferentes formas dependiendo del objeto. Menciona que existen tres técnicas de polimorfismo: sobrecarga de funciones y métodos, sobrescritura en la herencia e implementación de interfaces. Proporciona ejemplos de cada una.
El documento habla sobre el tema de herencia en programación orientada a objetos. Explica que la herencia permite que una clase herede los atributos y comportamientos de otra clase base. Define los tipos de herencia simple y múltiple, e ilustra su implementación en Java con ejemplos de clases Empleado y Ejecutivo. También cubre conceptos como los constructores, métodos de la clase Object y una aplicación de herencia de figuras geométricas.
El documento resume la sintaxis del lenguaje de programación C#, incluyendo expresiones, operadores, sentencias, tipos de datos, variables, literales, cadenas y formateo de cadenas. Explica las diferencias entre tipos de valor y referencia y cómo se almacenan en la pila y el montículo.
Buenas prácticas para la construcción de softwareIker Canarias
Este documento presenta una introducción a las buenas prácticas para la construcción de software. Explica brevemente por qué se desarrolla software de manera deficiente, los beneficios de seguir buenas prácticas y resume varios principios clave de buena programación como DRY, KISS y Open/Closed. También cubre conceptos como acoplamiento, cohesión y reutilización de código. Finalmente, menciona algunas herramientas como Checkstyle y PMD que ayudan a seguir convenciones de codificación.
Este documento introduce los conceptos básicos de la programación orientada a objetos en C#, incluyendo la definición de clases, objetos, constructores, métodos, propiedades, herencia, polimorfismo e interfaces. Explica cómo declarar y utilizar clases, objetos, métodos y otros miembros de clases, así como sus diferentes ámbitos de acceso.
El documento presenta una introducción a la programación orientada a objetos en Java. Explica conceptos clave como ingeniería de software, abstracción, clases y objetos. Luego, detalla los pasos para declarar clases, atributos, métodos y constructores en Java. Finalmente, provee ejemplos de cómo declarar una clase Vehículo con atributos y métodos para gestionar la carga.
Este documento proporciona una introducción a Java, discutiendo algunas de sus características clave como su independencia de plataforma, tipos de datos, clases, herencia, constructores y entrada/salida. Explica por qué Java es un buen lenguaje para aprender y algunas de sus ventajas sobre C++, como su manejo automático de memoria.
Contenido de la Publicación:
Creador del lenguaje C#
Elementos del lenguaje C#
Tipos de datos en C#
Publicada en mi blog de Programación Visual C#:
http://www.microsoft-visualstudio.com/2014/01/tipos-datos-y-operadores-c-sharp.html
El documento presenta un temario sobre programación orientada a objetos en PHP. Aborda conceptos como el uso de Tomcat en Netbeans, métodos constructores, herencia, visibilidad, métodos estáticos, constantes, clases abstractas e interfaces, excepciones, clases y métodos finales, métodos de destrucción, conversión a cadena y sobrecarga de métodos. También incluye ejemplos de código para ilustrar cada tema.
El documento describe los conceptos básicos de la programación, incluyendo los tipos de lenguajes de programación, las fases del proceso de programación, y conceptos clave como variables, constantes, algoritmos, pseudocódigo y diagramas de flujo. También explica la diferencia entre bits y bytes como unidades básicas de almacenamiento de datos en un computador.
El documento explica los fundamentos de un programa Java "Hola Mundo". Describe una clase Hello que contiene un método main que imprime "Hola mundo" usando System.out.println. Explica conceptos como declaraciones de clase, métodos, comentarios, directrices de codificación y más.
Introducción al desarrollo de videojuegos 2D con Wave EngineEduard Tomàs
Este documento presenta los componentes principales del motor de juegos Wave Engine, incluyendo Drawables para elementos gráficos, Behaviors para comportamientos, y Sprite y Animation2D para animaciones. Explica cómo usar Transform2D para posicionar elementos, y SplashScreen y SpriteRenderer para dibujar elementos en la pantalla. También cubre el uso incorrecto de heredar de Entity y recomienda recursos adicionales sobre spritesheets y empaquetado de texturas.
IndexedDb es una API HTML5 para guardar datos en local. A diferencia de localStorage, IndexedDb es muy rápida, permite búsquedas y es válida para grandes cantidades de datos.
La Programación Orientada a Objetos (POO) encapsula datos y funciones en unidades llamadas clases. Una clase define los atributos y métodos de un objeto. Los objetos de una clase comparten la misma estructura y comportamiento. El documento presenta ejemplos de clases Tiempo y Vendedor que definen objetos con atributos y métodos para representar tiempos y ventas respectivamente.
1) Las clases abstractas definen características comunes de clases derivadas pero no pueden crear objetos directamente. 2) Las clases abstractas pueden incluir métodos abstractos sin implementación que deben implementarse en clases derivadas. 3) Las interfaces definen métodos y constantes que las clases que las implementan deben incluir.
El documento explica los conceptos básicos de la programación orientada a objetos con C++, incluyendo clases, objetos, encapsulamiento, herencia, polimorfismo, constructores, destructores y sobrecarga de métodos. Se proporcionan ejemplos de cómo definir clases, crear objetos, y utilizar constructores y destructores para inicializar y liberar la memoria de los objetos.
El documento describe conceptos y operaciones básicas de arreglos unidimensionales y bidimensionales en C#. Explica cómo declarar, crear, inicializar y acceder a elementos de arreglos. También presenta ejemplos de aplicaciones como listas, vectores, matrices y el cálculo de la suma de dos matrices.
El documento presenta una introducción a la programación orientada a objetos (POO) en PHP. Explica que PHP 5 mejoró notablemente el soporte para POO, introduciendo conceptos como clases, herencia, métodos mágicos y excepciones. También define conceptos básicos de POO como clases, objetos, propiedades, métodos y niveles de acceso, e ilustra su uso con ejemplos como una clase para representar un automóvil.
El documento habla sobre el polimorfismo en Java. Explica que el polimorfismo permite referirse a objetos de diferentes clases mediante el mismo elemento de programa y realizar la misma operación de diferentes formas dependiendo del objeto. Menciona que existen tres técnicas de polimorfismo: sobrecarga de funciones y métodos, sobrescritura en la herencia e implementación de interfaces. Proporciona ejemplos de cada una.
Este documento introduce Java y sus características principales. Explica que Java es un lenguaje orientado a objetos, independiente de la plataforma y pequeño que puede correr en navegadores y dispositivos portátiles. También describe los tipos de datos básicos como números, caracteres, cadenas y arreglos, y conceptos de programación orientada a objetos como clases, herencia, constructores y métodos.
Este documento proporciona una introducción a Objective-C, incluyendo su sintaxis básica como números, cadenas, condicionales y bucles. También explica conceptos como clases, propiedades, métodos y mensajes. Por último, presenta brevemente patrones como MVC y el uso de tablas y mapas.
El documento habla sobre el polimorfismo en programación. Explica que el polimorfismo permite referirse a objetos de diferentes clases mediante el mismo elemento de programa y realizar la misma operación de diferentes formas dependiendo del objeto. Menciona que existen tres técnicas de polimorfismo: sobrecarga de funciones y métodos, sobrescritura en la herencia e implementación de interfaces. Proporciona ejemplos de cada una.
El documento habla sobre el tema de herencia en programación orientada a objetos. Explica que la herencia permite que una clase herede los atributos y comportamientos de otra clase base. Define los tipos de herencia simple y múltiple, e ilustra su implementación en Java con ejemplos de clases Empleado y Ejecutivo. También cubre conceptos como los constructores, métodos de la clase Object y una aplicación de herencia de figuras geométricas.
El documento resume la sintaxis del lenguaje de programación C#, incluyendo expresiones, operadores, sentencias, tipos de datos, variables, literales, cadenas y formateo de cadenas. Explica las diferencias entre tipos de valor y referencia y cómo se almacenan en la pila y el montículo.
Buenas prácticas para la construcción de softwareIker Canarias
Este documento presenta una introducción a las buenas prácticas para la construcción de software. Explica brevemente por qué se desarrolla software de manera deficiente, los beneficios de seguir buenas prácticas y resume varios principios clave de buena programación como DRY, KISS y Open/Closed. También cubre conceptos como acoplamiento, cohesión y reutilización de código. Finalmente, menciona algunas herramientas como Checkstyle y PMD que ayudan a seguir convenciones de codificación.
Este documento introduce los conceptos básicos de la programación orientada a objetos en C#, incluyendo la definición de clases, objetos, constructores, métodos, propiedades, herencia, polimorfismo e interfaces. Explica cómo declarar y utilizar clases, objetos, métodos y otros miembros de clases, así como sus diferentes ámbitos de acceso.
El documento presenta una introducción a la programación orientada a objetos en Java. Explica conceptos clave como ingeniería de software, abstracción, clases y objetos. Luego, detalla los pasos para declarar clases, atributos, métodos y constructores en Java. Finalmente, provee ejemplos de cómo declarar una clase Vehículo con atributos y métodos para gestionar la carga.
Este documento proporciona una introducción a Java, discutiendo algunas de sus características clave como su independencia de plataforma, tipos de datos, clases, herencia, constructores y entrada/salida. Explica por qué Java es un buen lenguaje para aprender y algunas de sus ventajas sobre C++, como su manejo automático de memoria.
Contenido de la Publicación:
Creador del lenguaje C#
Elementos del lenguaje C#
Tipos de datos en C#
Publicada en mi blog de Programación Visual C#:
http://www.microsoft-visualstudio.com/2014/01/tipos-datos-y-operadores-c-sharp.html
El documento presenta un temario sobre programación orientada a objetos en PHP. Aborda conceptos como el uso de Tomcat en Netbeans, métodos constructores, herencia, visibilidad, métodos estáticos, constantes, clases abstractas e interfaces, excepciones, clases y métodos finales, métodos de destrucción, conversión a cadena y sobrecarga de métodos. También incluye ejemplos de código para ilustrar cada tema.
El documento describe los conceptos básicos de la programación, incluyendo los tipos de lenguajes de programación, las fases del proceso de programación, y conceptos clave como variables, constantes, algoritmos, pseudocódigo y diagramas de flujo. También explica la diferencia entre bits y bytes como unidades básicas de almacenamiento de datos en un computador.
El documento explica los fundamentos de un programa Java "Hola Mundo". Describe una clase Hello que contiene un método main que imprime "Hola mundo" usando System.out.println. Explica conceptos como declaraciones de clase, métodos, comentarios, directrices de codificación y más.
Introducción al desarrollo de videojuegos 2D con Wave EngineEduard Tomàs
Este documento presenta los componentes principales del motor de juegos Wave Engine, incluyendo Drawables para elementos gráficos, Behaviors para comportamientos, y Sprite y Animation2D para animaciones. Explica cómo usar Transform2D para posicionar elementos, y SplashScreen y SpriteRenderer para dibujar elementos en la pantalla. También cubre el uso incorrecto de heredar de Entity y recomienda recursos adicionales sobre spritesheets y empaquetado de texturas.
IndexedDb es una API HTML5 para guardar datos en local. A diferencia de localStorage, IndexedDb es muy rápida, permite búsquedas y es válida para grandes cantidades de datos.
CodeContracts permite especificar contratos (precondiciones, postcondiciones e invariantes) en .NET para documentar y verificar el comportamiento de métodos y clases. Estos contratos se definen mediante atributos y pueden evaluarse en tiempo de ejecución o compilación para validar el código. Las interfaces también pueden definir contratos a través de clases de contrato. La herramienta admite análisis estático, pruebas unitarias y documentación de contratos.
Descripción del Bridge for iOS (Project Islandwood - WinObjC): sus características, sus limitaciones y sus expectativas a futuro. Como crear proyectos que funcionen tanto en XCode/iOS y VS/Windows 10 usando el bridge
Aplicaciones Metro UI para Windows8 con C# y XAML (12 horas Visual Studio)Eduard Tomàs
Presentación correspondiente a la charla del evento de 12 hores de Visual Studio, sobre el desarrollo de aplicacions Metro UI para Windows 8 usando C# y XAML
.NET es una plataforma de ejecución de aplicaciones basada en una máquina virtual (CLR) que permite desarrollar aplicaciones multiplataforma en múltiples lenguajes como C#. Con .NET se pueden crear aplicaciones de escritorio, web, servicios y aplicaciones de consola. Su historia comenzó en 2000 y ha ido evolucionando con cada nueva versión de .NET y Visual Studio. También existen perfiles específicos como .NET Compact Framework para dispositivos móviles y Silverlight para aplicaciones RIA.
Este documento presenta React Native, una librería desarrollada por Facebook que permite crear aplicaciones móviles nativas usando JavaScript y React. Explica que React Native usa el mismo enfoque de flujo de datos y fuente única de verdad que React, pero genera interfaces nativas en lugar de HTML. También cubre temas como el uso de JSX, estilos CSS propios, y la necesidad de patrones arquitectónicos más allá de React para aplicaciones grandes.
En esta presentación se comenta que son las interfaces REST, la pirámide de madurez de REST y algunos consejos sobre como implementar dichas interfaces
Este documento describe Handlebars, una librería de plantillas para JavaScript que permite generar HTML a partir de datos JSON. Explica cómo cargar templates, compilarlos en funciones, ejecutarlos para generar HTML y cómo usar expresiones, bloques y helpers para iterar sobre datos y personalizar la salida.
Este documento presenta un resumen de las principales características de ECMAScript 6 (ES6), la próxima versión del estándar JavaScript. ES6 hace énfasis en las capacidades funcionales del lenguaje a través de nuevas características como scopes locales, destructuring, parámetros por defecto, operadores de propagación y flecha, objetos literales simplificados, iteradores, bucles for-of, generadores, Maps y Sets, clases, proxies, promesas y un nuevo sistema de módulos.
React native - Unleash the power of your deviceEduard Tomàs
This document summarizes a presentation about React Native, a library for building mobile apps using JavaScript and React. React Native allows building native mobile apps using the same tools and workflow as web development. It brings the "React way" of building UIs with reusable components to mobile and uses a single-direction data flow. While code can be shared between platforms, some UI components may not be fully reusable due to platform differences. The virtual DOM generated by components is translated to real native UI.
Vista aérea de los lenguajes de programaciónEduard Tomàs
PPT de la última clase del curso de "Introducción a la programación" impartido por EscuelaIT.
Un repaso rápido a la historia de los lenguajes de programación y su clasificación según paradigma (procedurales, estructurados, orientados a objetos, funcionales,...) y su sistema de tipos (dinámicos, estáticos).
El documento describe los conceptos fundamentales del paradigma de programación orientada a objetos, incluyendo clases, objetos, herencia, polimorfismo, encapsulación y la colaboración entre objetos a través del paso de mensajes. También explica cómo estos conceptos se aplican en los lenguajes de programación y métodos de análisis orientados a objetos.
El documento describe los aspectos básicos de sintaxis de Visual Basic .NET, incluyendo declaración de variables, tipos de datos, estructuras de control como If, Select Case, bucles, y manejo de excepciones con Try-Catch. También cubre temas como programación orientada a objetos, eventos, y el uso del lenguaje intermedio IL.
El documento describe la programación orientada a objetos en C++. Explica conceptos clave como clases, objetos, métodos y atributos. También cubre temas como declaración de clases, acceso a miembros, constructores, destructores y herencia. El objetivo es proporcionar una introducción general a la programación orientada a objetos en C++.
Este documento trata sobre programación orientada a objetos en C++. Explica conceptos clave como clases, objetos, constructores, destructores, herencia y otros temas relacionados con POO en C++.
Este documento proporciona una introducción a C++, describiendo conceptos como programación orientada a objetos, clases, objetos, encapsulación, polimorfismo, herencia, constructores y destructores. Explica las diferencias entre C y C++ y ofrece ejemplos de cómo crear clases, objetos y usar funciones miembro. También cubre temas como entrada/salida por consola y formato de salida.
Este documento presenta los fundamentos de la programación orientada a objetos. Explica conceptos clave como clases, métodos, atributos, encapsulamiento, herencia e interfaces. También cubre temas como código limpio, nombres significativos y tamaño apropiado de funciones. El objetivo es que los estudiantes identifiquen los principios básicos de POO para desarrollar aplicaciones de software de manera efectiva.
El documento describe el lenguaje de programación C#. C# es un lenguaje orientado a objetos diseñado por Microsoft que combina elementos de C++ y Java. Fue creado en 1998 y actualmente su versión más moderna es la 6.0. C# es un lenguaje multiparadigma que incluye características como orientación a objetos, programación genérica y reflexión.
Este documento presenta un cronograma y agenda para un curso básico de C# dictado por Microsoft Student Partners. El cronograma incluye 7 sesiones entre marzo y mayo para cubrir temas como introducción a .NET Framework y C#, programación básica, orientada a objetos, estructuras de datos, aplicaciones Windows, bases de datos, y ASP.NET. La agenda para la primera sesión incluye explicaciones sobre qué es .NET y C#, declaración de variables, tipos de datos, entradas y salidas, y operadores.
Este documento presenta una introducción a la programación orientada a objetos en C++. Explica conceptos clave como clases, objetos, encapsulamiento, herencia y polimorfismo. Luego proporciona un ejemplo de clase para calcular las notas de los alumnos en una asignatura según diferentes porcentajes para prácticas, exámenes parciales y finales.
El documento proporciona una introducción al lenguaje de programación C#. Explica que C# es un lenguaje orientado a objetos, de propósito general y moderno desarrollado por Microsoft. Resume las características clave de C# como su portabilidad, facilidad de migración desde otros lenguajes como C++ y Java, y su capacidad para desarrollar aplicaciones de todos los tamaños. También resume brevemente la evolución de C# a través de sus diferentes versiones y las mejoras incorporadas en cada una.
Este documento describe los conceptos básicos de la programación orientada a objetos como la abstracción, encapsulación, herencia y polimorfismo. Explica cómo crear una clase Empleado en Visual Basic .NET para modelar los procesos de un empleado dentro de una aplicación de gestión empresarial utilizando una perspectiva orientada a objetos.
Este documento presenta un cronograma y agenda para un curso básico de C# dictado por Microsoft Student Partners. El cronograma incluye 7 sesiones entre el 7 de marzo y el 9 de mayo para cubrir temas como introducción a .NET Framework, programación básica, orientada a objetos, interfaces gráficas, bases de datos y ASP.NET. La agenda para la primera sesión incluye explicaciones sobre C#, declaración de variables, tipos de datos y estructuras de control básicas como condicionales y ciclos.
El documento proporciona una introducción al lenguaje de programación C++. Explica que C++ fue creado a mediados de los 80 por Bjarne Stroustrup en AT&T para pasar de la programación tradicional en C a estilos más orientados a objetos. Resume las principales características y extensiones de C++ como clases, herencia, sobrecarga de operadores y funciones, y manejo de memoria dinámica.
El documento describe la estructura básica de un programa en C++, incluyendo las directivas de preprocesador, la función principal main(), y las funciones. También describe los tipos de datos simples en C++ como enteros, reales, caracteres y lógicos, así como sus operaciones y funciones asociadas.
Elementos básicos de un lenguaje de alto nivelRicardo Axel
El documento describe los elementos básicos de un lenguaje de programación C++. Explica la estructura básica de un programa C++, incluyendo directivas de preprocesador, funciones como main(), y el uso de comentarios. También cubre los tipos de datos simples en C++ como enteros, flotantes, caracteres y lógicos, así como los operadores aplicables a cada tipo.
Este documento resume los componentes básicos del lenguaje C++, incluyendo tipos de datos, constantes y variables, operadores, instrucciones de control, funciones, arreglos, apuntadores, objetos, archivos de entrada y salida. Explica conceptos como tipos de datos primitivos, cadenas, manipulación de archivos, flujos de entrada y salida, y el operador de resolución de ámbito.
C# es un lenguaje de programación orientado a objetos desarrollado por Microsoft como parte de su plataforma .NET. Fue diseñado para ser utilizado principalmente en .NET, tomando características de lenguajes como C++, Java y Visual Basic. C# ofrece características como orientación a objetos, componentes, gestión automática de memoria, tipos seguros, extensibilidad y eficiencia.
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Luis775803
Este documento presenta una sesión de capacitación sobre cómo crear un modelo de regresión utilizando Azure Machine Learning Designer. La sesión cubre la configuración del entorno de trabajo, la exploración y limpieza de datos, el entrenamiento del modelo, la creación de un pipeline de inferencia y la implementación de un servicio predictivo. El objetivo es enseñar a los asistentes a crear una aplicación predictiva mediante el uso de Azure ML.
C# es un lenguaje de programación orientado a objetos diseñado para la Plataforma .NET. C# deriva de C y C++ pero simplifica aspectos como clases, herencia y manejo de excepciones. C# permite el desarrollo de aplicaciones seguras, robustas y administradas que se ejecutan en la Máquina Virtual de .NET.
Charla que di en la Bilbostack 2022 sobre Kubernetes.
Discutía casos de uso, cuando usarlo y cuando no y algunos consejos destinados a aquellos que se están planteando usarlo.
Escalando workloads serverless en Kubernetes con KedaEduard Tomàs
Este documento presenta sobre cómo ejecutar cargas de trabajo serverless en Kubernetes. Explica que serverless y Kubernetes no tienen por qué ser mutuamente excluyentes y que existen implementaciones como Azure Functions que permiten ejecutar funciones serverless en Kubernetes. También discute sobre cómo usar KEDA para escalar automáticamente funciones de Azure basadas en eventos externos y cómo modelar workloads serverless como jobs para evitar que el HPA mate pods que aún están procesando.
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDAEduard Tomàs
KEDA es un escalador para kubernetes basado en eventos externos, pensado para escalar workloads serverless. En esta charla mostré como ejecutar Azure Functions en un Kubernetes y escalarlos con KEDA, así como una estrategia alternativa escalando Jobs.
Keda o como convertir Kubernetess en ServerlessEduard Tomàs
Este documento presenta KEDA, un proyecto de código abierto que permite escalar automáticamente aplicaciones en Kubernetes en respuesta a eventos externos. Explica cómo KEDA monitorea eventos para escalar proactivamente despliegues, permitiendo convertir Kubernetes en un entorno serverless. También describe cómo usar KEDA para desplegar funciones de Azure en Kubernetes y cómo gestionar procesos largos para evitar problemas de escalado.
Eduard Tomàs presenta sobre temas de memoria, .NET y rendimiento. Explica conceptos como cómo funciona la recolección de basura, las generaciones de memoria y cómo reservar memoria puede afectar el rendimiento de una aplicación. También cubre temas como value types vs reference types, value types con semántica de referencia, Span<T> y stackalloc para mejorar el manejo de la memoria. Recomienda medir el rendimiento y solo optimizar cuando sea necesario.
Containers en .NET (Dot Net 2018 - Spain)Eduard Tomàs
Este documento presenta una charla sobre contenedores en .NET. Se discuten las diferencias entre .NET Core y .NET Framework en contenedores, incluidas las ventajas de .NET Core como ser más modular y funcionar en Linux. También se cubren buenas prácticas para .NET Core como configuración, secretos y multi-stage builds. Se explican escenarios para mover aplicaciones .NET Framework existentes a contenedores y se concluye con una discusión sobre CI/CD utilizando contenedores.
Este documento habla sobre cómo desplegar contenedores en producción usando orquestadores, centrándose principalmente en Kubernetes. Explica los beneficios de usar un orquestador como Kubernetes para administrar el ciclo de vida de los contenedores y proveer servicios adicionales. También discute algunos mitos comunes sobre Kubernetes y ofrece consejos sobre buenas prácticas al usar Docker y Kubernetes.
Codemotion 2015 - Bienvenido de nuevo c++Eduard Tomàs
El documento presenta una introducción al lenguaje C++ moderno. Explica las diferencias entre C++ clásico y C++ moderno, incluyendo el uso de smart pointers, contenedores estándar, expresiones lambda y otras características de C++11/14. También resume brevemente algunas de las principales características de C++ como inferencia de tipos, decltype, gestión de memoria con RAII y más.
En esta charla, basada en una que dió Mark Rendle, analizamos características de varios lenguajes de programación a la vez que las combinamos para crear eso... el "peor" lenguaje posible.
Charla que di en la Commit Conf 2019
Containerize a netcore application with aksEduard Tomàs
This document discusses containerizing a .NET Core application with Azure Kubernetes Service (AKS) using three levels: 1) Using kubectl commands directly, 2) Creating YAML configuration files, and 3) Using Helm charts for deployment automation and management. It provides an overview of deploying a .NET Core application to an AKS cluster with an Ingress controller and services.
Aplicaciones de consola fáciles? Más quisieramosEduard Tomàs
Este documento presenta una introducción al desarrollo de aplicaciones de consola en diferentes plataformas como *NIX, Windows y de forma cruzada. Explica la arquitectura del terminal en *NIX y Windows, las novedades de Windows 10 para aplicaciones de consola, y diferentes opciones para desarrollar aplicaciones de consola de forma cruzada usando .NET Standard y bibliotecas como ncurses y Win32 Console API.
Serverless with Azure Functions and CosmosDbEduard Tomàs
El documento describe una arquitectura serverless para una aplicación que recopila datos de cervecerías y permite a los usuarios publicar revisiones de cervezas y brindar por las revisiones de otros usuarios. La arquitectura utiliza Azure Functions para ejecutar código sin servidores, Cosmos DB para almacenar datos de forma flexible y grafos para consultas avanzadas sobre las relaciones entre usuarios y revisiones.
El documento describe un evento técnico de un día organizado por Plain Concepts. La agenda incluye charlas sobre CSS Grid Layout, desarrollo multiplataforma con Xamarin, Docker, Azure, Swagger y entrega continua con Visual Studio Team Services. También se mencionan conceptos como Kubernetes e incluye una demostración de Docker.
Whar are microservices and microservices architecture (MSA) How we reach them? Are they the same or SoA or not? When to use them? What are the key characteristics?
Slides of my talk given in #Gapand2017 in Andorra
El documento describe los pasos para hacer cerveza artesanal: 1) plantar y cosechar grano y lúpulo, 2) maltear el grano, 3) macerar el grano en agua caliente, 4) hervir el mosto, 5) añadir lúpulos, 6) enfriar el mosto rápidamente, 7) fermentación y envasado, 8) compartir la cerveza con amigos. También incluye información sobre la conferencia Microsoft Summit de octubre de 2016 y sobre Azure Functions.
Presentación de mi charla en la #dotNetSpain2016 sobre ASP.NET Core.
Temas tratados:
Model Binding
Routing
Tag Helpers
View Components
Configuración
Localización
para programadores y desarrolladores de inteligencia artificial y machine learning, como se automatiza una cadena de valor o cadena de valor gracias a la teoría por Manuel Diaz @manuelmakemoney
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...AMADO SALVADOR
Descarga el Catálogo General de Tarifas 2024 de Vaillant, líder en tecnología para calefacción, ventilación y energía solar térmica y fotovoltaica. En Amado Salvador, como distribuidor oficial de Vaillant, te ofrecemos una amplia gama de productos de alta calidad y diseño innovador para tus proyectos de climatización y energía.
Descubre nuestra selección de productos Vaillant, incluyendo bombas de calor altamente eficientes, fancoils de última generación, sistemas de ventilación de alto rendimiento y soluciones de energía solar fotovoltaica y térmica para un rendimiento óptimo y sostenible. El catálogo de Vaillant 2024 presenta una variedad de opciones en calderas de condensación que garantizan eficiencia energética y durabilidad.
Con Vaillant, obtienes más que productos de climatización: control avanzado y conectividad para una gestión inteligente del sistema, acumuladores de agua caliente de gran capacidad y sistemas de aire acondicionado para un confort total. Confía en la fiabilidad de Amado Salvador como distribuidor oficial de Vaillant, y en la resistencia de los productos Vaillant, respaldados por años de experiencia e innovación en el sector.
En Amado Salvador, distribuidor oficial de Vaillant en Valencia, no solo proporcionamos productos de calidad, sino también servicios especializados para profesionales, asegurando que tus proyectos cuenten con el mejor soporte técnico y asesoramiento. Descarga nuestro catálogo y descubre por qué Vaillant es la elección preferida para proyectos de climatización y energía en Amado Salvador.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)codesiret
Los protocolos son conjuntos de
normas para formatos de mensaje y
procedimientos que permiten a las
máquinas y los programas de aplicación
intercambiar información.
SOPRA STERIA presenta una aplicació destinada a persones amb discapacitat intel·lectual que busca millorar la seva integració laboral i digital. Permet crear currículums de manera senzilla i intuitiva, facilitant així la seva participació en el mercat laboral i la seva independència econòmica. Aquesta iniciativa no només aborda la bretxa digital, sinó que també contribueix a reduir la desigualtat proporcionant eines accessibles i inclusives. A més, "inCV" està alineat amb els Objectius de Desenvolupament Sostenible de l'Agenda 2030, especialment els relacionats amb el treball decent i la reducció de desigualtats.
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)AbrahamCastillo42
Power point, diseñado por estudiantes de ciclo 1 arquitectura de plataformas, esta con la finalidad de dar a conocer el componente hardware llamado tarjeta de video..
2. www.pasiona.com
info@pasiona.com
(+34) 669 333 333
@pasiona Barcelona Bilbao Madrid Londres
Pujades 350, 10ª planta Gran Vía 19-21, 2ª planta Pinar 5, 1 Northumberland Avenue
08019 · Barcelona 48008 · Bilbao 28006 · Madrid London · WC2N 5BW
3. Qué es
Microsoft Innovación Pasión
socio 100% alineado ligada a la mejora continua y basada somos grandes entusiastas de todo
partner 100% especializado en las nuevas oportunidades tecnológicas aquello que creamos y vemos crecer
Desarrollo Tecnología Experiencia
capacidad para realizar proyectos de soluciones a cada una de las necesidades o la garantía de la habilidad derivada
ámbito tecnológico con un fin de mejora empresariales que se platean en cada ámbito de años de vivencias y observación
Especialización Conocimiento Valores humanos
ofrecemos soluciones a medida con adquirido a través de la realización de guía de lo que hacemos y pretendemos
las mejores herramientas tecnológicas proyectos, formación e innovación tecnológica que nos enseña y nos conduce día a día
4. Servicios
Consultoría Proyectos Auditoría
Servicios Social Formación
profesionales Media
Innovación Azure
5. Eduard Tomàs
Key Consultant en pasiona Consulting
Divulgador Tecnológico en Fundación Techdencias
@eiximenis
etomas@pasiona.com eiximenis@techdencias.net
6. Agenda
Un nuevo entorno: XCode
Un nuevo lenguaje: ObjectiveC
Modelo de desarrollo de aplicaciones iOS
10. Objective-C
Conocido popularmente como “C with classes”
NO es C++, NO tiene nada que ver con C++
Soporte para
OOP (Clases, interfaces, herencia…),
Programación dinámica
Gestión manual, semi-automática o
automática (GC) de memoria
11. Objective-C: Tipos simples
A diferencia de .NET en objectiveC existen
tipos simples que NO son objetos (char, int,
float, double, long, struct,…)
Para tratar con objetos NO se usan
referencias, se usan punteros
12. Objective-C: Tipos simples
No existe un tipo booleano. Se usa:
BOOL (typedef signed char)
YES / NO (#defines a 1 y 0)
El if() de ObjectiveC se evalúa a true si el valor
es !=0 y a false si es 0.
13. Objective-C: Tipos simples
Las structs de ObjectiveC no tienen NADA que
ver con las de .NET
No pueden tener métodos
No pueden tener datos privados
Son las structs de C!
14. Objective-C: Tipos simples
Los arrays de ObjectiveC son parecidos a los
de .NET salvo que:
No existen jagged arrays
El nombre del array es un puntero a su
primer elemento
15. Objective-C: Tipos simples
En ObjectiveC existen los punteros
Imprescinbibles para tratar con objetos (NO
hay referencias).
La llamada a alloc devuelve un puntero
Para declarar un puntero se usa Tipo*
El valor nil (o NULL) significa que el puntero
apunta a nada.
16. Objective-C: Clases
Mismo concepto que la clase de C#
Se define en dos archivos (.h y .m)
.h contiene la interfaz (@interface) de la
clase
NADA que ver con interface de C#
17. Objective-C: Clases
Ejemplo (.h)
#import <Foundation/Foundation.h>
@interface Person : NSObject
- (void)sayHello;
@end
Ejemplo (.m)
#import "Person.h"
@implementation Person
- (void)sayHello {
NSLog(@"Hello, my name is HAL.");
}
@end
18. Objective-C: Instanciación
NO existe operador new
Instanciar un objeto es un proceso en 2 pasos
Llamar al método alloc
Llamar al método init
En ObjectiveC no hay constructores. Se
usa init() para código de inicialización
custom
19. Objective-C: Instanciación
Ejemplo:
Person *somePerson = [Person alloc];
[somePerson init];
Aunque se suele combinar alloc e init:
Person *somePerson = [[Person alloc] init];
Los corchetes ([ ]) son el operador de envío de
mensajes
Equivale a llamar a un método en C#
20. Objective-C: Parámetros
Forman parte del nombre del método
Tienen un nombre “externo” y otro interno
- (void)sayHelloToName:(NSString *)aName;
- (void)sayHelloToName:(NSString *)aName {
NSLog(@"Hello %@, my name is HAL.", aName);
}
[somePerson sayHelloToName:@"Bill"];
21. Objective-C: Parámetros
-(NSNumber*) addWithTwoNumbers:(NSNumber *)first
secondNumber:(NSNumber *)second;
NSNumber* -> Tipo de vuelta
addWithTwoNumbers: -> Nombre método + externo param 1
(NSNumber*)first -> Tipo param 1 y nombre interno
secondNumber: -> nombre externo param 2
(NSNumber*)second -> Tipo param 2 y nombre interno
22. Objective-C: Parámetros
-(NSNumber*) addWithTwoNumbers:(NSNumber *)first
secondNumber:(NSNumber *)second;
El nombre de este método es:
addWithTwoNumbers:secondNumber:
Sobre este nombre se podría crear un selector para invocarlo
dinámicamente
23. Objective-C: Propiedades
Las clases de ObjectiveC pueden tener
propiedades
@property (copy) NSString *name;
Se pueden auto-implementar (en el .m) con:
@synthesize name = _name;
@synthesize genera los métodos set y get
(llamados setName y name en este caso)
25. Objective-C: Propiedades
Debemos añadir la variable de instancia
(_age). Podemos hacerlo en:
@interface y que sea pública o protegida
@implementation y que sea privada
@implementation Person {
unsigned int _age;
}
26. Objective-C: Propiedades
Recuerda que los getters y setters son
métodos, por lo tanto se invocan mediante
paso de mensajes (corchetes)
Aunque SOLO para las propiedades existe la
posibilidad de usarlas mediante la notación de
punto (.)
27. Objective-C: Memoria
La gestión de memoria es uno de los grandes
quebraderos en ObjectiveC. Hay 3 modelos:
Manual
Semi-automática (ARC, Automatic
Reference Counting)
Automática (GC, Garbage Collector)
La última NO puede usarse en iOS
28. Objective-C: Memoria
El runtime de ObjectiveC lleva una cuenta de
cuantas referencias apuntan a un objeto. Si
este contador llega a 0 el objeto puede ser
destruido.
La diferencia entre ARC y la gestión manual
es quien actualiza este contador.
29. Objective-C: Memoria
La gestión manual se basa en cuatro métodos
alloc: reserva memoria y suma uno al
contador de referencias del objeto
retain: Suma uno al contador de referencias
del objeto
release y autorelase: Decrementa en uno el
contador de referencias
30. Objective-C: Memoria
La idea de la gestión manual es muy simple:
El número de veces que se “reclama” un
objeto (alloc, retain) debe ser igual al
número de veces que se libera (release,
autorelase)
Por cada llamada a alloc/retain debe haber
una llamada a release o autorelease.
31. Objective-C: Memoria
Usar un objeto DESPUÉS de que haya sido
liberado es un error y suele ser catastrófico
No liberar un objeto nunca genera un memory-
leak
32. Objective-C: Memoria
La gestión manual es muy simple en objetos
de la pila pero se complica cuando se pasan
objetos entre ellos (p. ej. en propiedades).
Cuidado al usar weak-references! (Al
guardar un puntero a un objeto sin llamar a
retain).
33. Objective-C: Memoria
La diferencia entre release y autorelease es
que el primero decrementa al acto el contador
y el segundo se espera al final del
autoreleasepool actual.
@autoreleasepool {
...
NSLog(@"Hello, World!");
/* En este punto se decrementan todos los contadores afectados
por autorelease */
}
34. Objective-C: Memoria
Para las propiedades podemos indicar como
queramos que se comporten:
assign: Crea una weak reference
retain: Crea una strong reference
copy: Copia el objeto (clona)
@property (retain) Person *captain;
35. Objective-C: ARC
Por suerte nos podemos olvidar de la gestión
manual de memoria gracias a ARC que sí que
está soportado en iOS
NO hay ningún motivo para NO usar ARC y
usar la gestión manual de memoria!
36. Objective-C: ARC
La primera norma al usar ARC es muy simple:
NO llamar NUNCA a retain, release o
autorelease. Nunca. Jamás.
Desde este punto de vista, puedes actuar
como si tuvieses un GC
37. Objective-C: ARC
Para las propiedades NO usaremos assign o
retain, en su lugar usaremos:
weak: Para especificar una propiedad
mediante weak reference
strong: Para especificar una propiedad
mediante strong reference
38. Objective-C: ARC
ARC evita que un puntero que apunta a un
objeto eliminado siga apuntando a un espacio
de memoria “inválido” y lo asigna a nil.
39. Objective-C: Métodos estáticos
ObjectiveC soporta métodos estáticos. Son los
que empizan por + en su declaración:
@interface Person : NSObject
@property (copy) NSString *name;
- (void)sayHello;
+ (Person *)personWithName:(NSString *)name;
@end
El método personWithName es un método
estático
40. Objective-C: Métodos init
Si quieres crear un método init propio debes
declararlo que devuelve id:
- (id)init {
self = [super init];
if (self) { _ammo = 1000; }
return self; }
self es el equivalente de this en C# y super es
el equivalente de base en C#
41. Objective-C: Nombres
En Objective-C se busca que los nombres de
los métodos sean lo más informativos posibles
No uses:
- (id)shoot:(Ship *)aShip;
Usa mejor:
- (id)shootOtherShip:(Ship *)aShip;
42. Objective-C: Initialize
El método estático initialize juega el mismo rol
que el constructor estático en C#
static Ship *_sharedShip;
+ (void)initialize {
if (self == [Ship class]) {
_sharedShip = [[self alloc] init];
}
}
+ (Ship *)sharedShip {
return _sharedShip;
}
43. Objective-C: Métodos privados
Objective-C NO tiene métodos privados.
Se simulan NO colocando el método en la
interfaz (@interface) de la clase
Recuerda: Los “usuarios” de una clase solo
tienen acceso a su interfaz.
44. Objective-C: Categorías
Una categoría ofrece un conjunto de métodos adicionales sobre
una clase. Lo más parecido que tiene C# son los métodos de
extensión
Los métodos definidos en la categoría
Pueden usar los métodos de la clase que categorizan
Se pueden llamar con un puntero a la clase categorizada
45. Objective-C: Categorías
Las categorías se declaran como una clase cuyo nombre es
ClaseQueSeExtiende (NombreCategoría):
Se definen como clases normales (@interface e
@implementation)
Dentro de una categoria
self se refiere al objeto de la clase que se extiende
46. Objective-C: Métodos protected
Objective-C NO tiene el concepto de métodos
protegidos
Se pueden simular colocándolos todos en una
categoría e incluir el .h de dicha categoría tan
solo en las clases hijas.
47. Objective-C: Protocolos
Un protocolo es un conjunto de métodos que
una clase debe implementar.
Son como los interfaces de C# salvo que un
protocolo puede tener métodos “opcionales”.
Una clase puede adoptar varios protocolos (al
igual que en C# implementar varias interfaces)
48. Objective-C: Protocolos
La definición es con @protocol:
@protocol CoordinateSupport <NSObject>
@property double x;
- (NSArray *)arrayFromPosition;
- (double)magnitude;
@end
La notación angular (<>) indica herencia de
protocolos (CoordinateSupport hereda del
protocolo NSObject)
49. Objective-C: Protocolos
Para que una clase adopte un protocolo se
usa la notación angular:
@interface Person : NSObject <CoordinateSupport>
@property (copy) NSString *name;
@property (strong) NSMutableSet *friends;
- (void)sayHello;
- (void)sayGoodbye;
@end
Este código NO es correcto hasta que Person
no implemente los métodos del protocolo
50. Objective-C: Protocolos
Al igual que las interfaces en C# un protocolo
define un tipo por si mismo.
Aunque en Objective-C es un pesudo-tipo.
Se puede indicar que un parámetro debe
adoptar un protocolo:
- (double)getDistanceFromObject:(id <CoordinateSupport>)theObject;
52. iOS – Modelo MVC
Una aplicación iOS se construye mediante el
patrón MVC
Modelo: Datos de la aplicación
View: Vista que muestra los datos (nib file)
Controller: Clase que enlaza la vista con el
modelo
53. iOS – Vistas
Ficheros nib (.xib)
Contienen los controles de la vista, sus
propiedades y los enlaces de eventos
Equivaldría al XAML de WPF o a al
Form.Designer.cs de Winforms
54. iOS – Controladores
Contienen outlets y acciones
Outlet: Puntero que apunta a un control de
la vista controlada
Action: Método llamado por un control de la
vista
Outlets y acciones se asocian mediante
XCode
55. iOS – Controles son vistas
Conceptualmente los controles iOS son vistas
Algunos tienen su propio controlador
Caso de controles “complejos”
56. iOS – App Delegate
Clase encargada de inicializar la aplicación.
Crea la vista inicial y su controlador
Coloca la vista inicial en la ventana
Tiene métodos para que iOS le informe de
ciertos casos (fin de aplicación, paso a back,
etc)
Equivale a la clase App de WPF
57. iOS – Aplicación single-view
Contiene:
Una vista (fichero .xib)
Un controlador
Un application delegate
58. iOS – Rotación
Puede ser:
1. Automática
2. Reposición de controles manual
3. Mediante dos vistas (landscape y portrait)
90% de aplicaciones tendrán sufienciente con
(1)
59. iOS – Rotación automática
iOS rota las vistas automáticamente
Para que los controles se reposicionen
correctamente deben establecerse las
restricciones de posición
Funcionan de forma parecida a la
propiedad Anchor de Winforms o Margin de
WPF
60. iOS – Reposición manual
Para layouts complejos puede ser necesario
reposicionar los controles manualmente
Usar método willAnimateRotationToInterfaceOrientation
del controlador para posicionar los controles
en su nueva posición
61. iOS – Rotación: dos vistas
Para vistas complejas o funcionalidades
distintas según orientación deberemos usar
dos vistas
Usar método willAnimateRotationToInterfaceOrientation
del controlador para cambiar la vista según la
orientación
¡Tener presente que todo está duplicado!
62. iOS – Aplicaciones multivista
Constan de:
N vistas (.xib) secundarias
N controladores
Una vista principal con el control que
permite el cambio de vista (ej Toolbar) y
que realiza el cambio
El controlador de la vista principal
63. iOS – Control TableView
Necesita un delegado
(UITableViewDelegate) y
un DataSource
(UITableViewDataSource)
64. iOS – Control TableView
Lista de datos
Agrupaciones de
datos
Siempre tiene 1
columna
Personalizable
65. iOS – Control TableView
Necesita un delegado
(UITableViewDelegate) y
un DataSource
(UITableViewDataSource)
66. iOS – Storyboards
Permiten definir el flujo de una aplicación de
forma gráfica
“Agrupan” varios ficheros nib en uno solo
Solo iOS 5 o superior
67. Eduard Tomàs
@eiximenis
etomas@pasiona.com
eiximenis@techdencias.net
Gracias!