<![CDATA[Swift Legacy Bridge]]>https://www.swiftlegacybridge.com/https://www.swiftlegacybridge.com/favicon.pngSwift Legacy Bridgehttps://www.swiftlegacybridge.com/Ghost 5.93Wed, 04 Sep 2024 02:42:22 GMT60<![CDATA[TDD: Test Driven Development Lifecycle]]>https://www.swiftlegacybridge.com/tdd-test-driven-development-lifecycle/6631f2cad4c2660001c1ec0bWed, 01 May 2024 08:02:53 GMT
TDD: Test Driven Development Lifecycle

ES

Red → Green → Refactor → Repeat

  • Red - Write the test/Unitary Test first**
    • Before writing code that performs a specific function, an automated test is first created for that function.
      • This test will initially fail, as the functionality has not yet been implemented.
  • Green - Write the code to pass the test.
    • After creating the test, the next step is to write the minimum code necessary for the test to pass.
      • This approach ensures that development is focused solely on meeting the requirements.
  • Refactoring the code
    • Once the test is passed, the next step is to refactor the code while maintaining its functionality.
      • This may include improving the clarity of the code, removing duplication, or any other improvements that do not affect the external functionality of the software.
  • Repeat
    • Repeat these steps until all application functionality is built and tested.

EN

TDD: Ciclo de vida del desarrollo basado en pruebas

TDD: Test Driven Development Lifecycle
Ciclo de vida de TDD - Rojo → Verde → Refactorizar → Repetir

Rojo → Verde → Refactorizar → Repetir

  • Rojo - Escribir la prueba/Test Unitario primero
    • Antes de escribir el código que realiza una función específica, primero se crea una prueba automatizada para esa función.
      • Esta prueba inicialmente fallará, ya que aún no se ha implementado la funcionalidad.
  • Verde - Escribir el código para pasar la prueba
    • Después de crear la prueba, el siguiente paso es escribir el código mínimo necesario para que la prueba pase.
      • Este enfoque garantiza que el desarrollo se centre exclusivamente en cumplir los requisitos.
  • Refactorizar el código
    • Una vez que la prueba es superada, el siguiente paso es refactorizar el código manteniendo su funcionalidad.
      • Esto puede incluir mejorar la claridad del código, eliminar duplicaciones, o cualquier otra mejora que no afecte la funcionalidad externa del software.
  • Repetir
    • Repetir estos pasos hasta que todas las funcionalidades de la aplicación estén creadas y probadas.
]]>
<![CDATA[Xcode: Add Unit Test Target to an existing project]]>https://www.swiftlegacybridge.com/xcode-add-unit-test-target-to-an-existing-project/6630c0b44616e50001ac2343Tue, 30 Apr 2024 10:26:04 GMT
Xcode: Add Unit Test Target to an existing  project

ES

Create a Unit Testing Bundle
Xcode: Add Unit Test Target to an existing  project
Xcode - Menu Bar - "File" > "Target"

File > New > Target...

Xcode: Add Unit Test Target to an existing  project
"iOS " > Search "Unit Test" > Click on "Unit Testing Bundle"

iOS > 🔍 Unit Test > Unit Testing Bundle

Xcode: Add Unit Test Target to an existing  project
Xcode - Choose options for your new target: - Product Name: WeatherBridgeTests

If for example the project is called WeatherBridge, make sure the Product Name: text is project-name+Tests.

  • It is not mandatory that the word Tests is added to the name of the project, but it is a widespread convention.
New look of the project ready to use unit tests
Xcode: Add Unit Test Target to an existing  project

EN

Xcode: Añadir Unit Test Target a un proyecto existente

Xcode: Add Unit Test Target to an existing  project
Árbol de descubrimiento - Proyecto "<Placeholder>Bridge" > En progreso "Add Unit Test Target"
Crear un paquete de Tests Unitarios
Xcode: Add Unit Test Target to an existing  project
Xcode - Barra de menú - "File" > "Target"

File > New > Target...

Xcode: Add Unit Test Target to an existing  project
"iOS " > Buscar "Unit Test" > Hacer clic sobre "Unit Testing Bundle"

iOS > 🔍 Unit Test > Unit Testing Bundle

Xcode: Add Unit Test Target to an existing  project
Xcode - Choose options for your new target: - Product Name: WeatherBridgeTests

Si por ejemplo el proyecto se llama WeatherBridge, fíjate que el texto de Product Name: sea el nombre-del-proyecto+Tests.

  • No es obligado que la palabra Tests se añada al nombre del proyecto, pero es una convención muy extendida.
Nuevo aspecto del proyecto preparado para utilizar tests unitarios
Xcode: Add Unit Test Target to an existing  project
Xcode - Ventana Navigator - Carpeta WeatherBridgeTests - Fichero WeatherBridgeTests.swift
]]>
<![CDATA[Xcode: Add your Apple ID Account]]>https://www.swiftlegacybridge.com/xcode-add-an-apple-id-account/66155c38b726d200018444deTue, 09 Apr 2024 15:55:31 GMT
Xcode: Add your Apple ID Account

ES

Developing native apps with or without Apple ID associated to Xcode

To develop native apps with Xcode, we can do it

  • without an Apple ID.
  • with an Apple ID associated to a free developer account.
  • with an Apple ID associated with a paid developer account.
Without an Apple ID
  • You can only run apps in Xcode's simulator.
With an Apple ID associated with a free developer account
  • Ability to run apps on physical devices with certain limitations.
  • Access to some developer resources such as beta versions.
  • With the same Apple ID, you can later upgrade to a paid account.
With an Apple ID associated with a paid developer account.
  • Full access to all developer resources.
  • Implement CI (EN Continuous Integration) and CD (EN Continuous Delivery) with Xcode Cloud.
    • 25 hours of computing time per month
  • Ability to distribute applications on the App Store.
  • Use advanced app features such as iCloud, push notifications, etc.
  • Invite other developers to work on your project as part of your team.

Adding an Apple ID account to Xcode

To add an Apple ID account to our Xcode, it can be done in two different ways:

  • Through creating a project.
  • Through Xcode Settings....
Through the creation of a project

In the Choose options for your new project window, click on the Add account... button.

Xcode: Add your Apple ID Account
Xcode - Choose options for your new project - Team: Add Account...

The Sign in with your Apple ID wizard window will appear.

  • Enter the email address associated with your Apple ID and follow the prompts.
Xcode: Add your Apple ID Account
Alt: Xcode - Sign in with your Apple ID - Email or Phone Number: <yourEmailthatActsAsAppleID>
Through Xcode's Settings...

In the Xcode menu bar select Xcode > Settings....

  • Shortcut: ⌘,
Xcode: Add your Apple ID Account
Alt: Xcode Menu bar - Xcode > Settings...

In the Settings window, select Accounts and then the (+) button.

Xcode: Add your Apple ID Account
Xcode - Settings window - Accounts > (+)

The Sign in with your Apple ID wizard window will appear.

  • Enter the email address associated with your Apple ID and follow the prompts.
Xcode: Add your Apple ID Account
Alt: Xcode - Sign in with your Apple ID - Email or Phone Number: <yourEmailthatActsAsAppleID>

EN

Xcode: Añadir tu cuenta de Apple ID

Desarrollar apps nativas con o sin Apple ID asociado a Xcode

Para desarrollar apps nativas con Xcode, lo podemos hacer

  • sin un Apple ID.
  • con un Apple ID asociado a una cuenta de desarrollador gratuita.
  • con un Apple ID asociado a una cuenta de desarrollador de pago.
Sin un Apple ID
  • Sólo se pueden ejecutar apps en el simulador de Xcode.
Con un Apple ID asociado a una cuenta de desarrollador gratuita
  • Posibilidad de ejecutar apps en dispositivos físicos con ciertas limitaciones.
  • Acceso a algunos recursos de desarrolladores como versiones beta.
  • Con el mismo Apple ID, se puede pasar más adelante a una cuenta de pago.
Con un Apple ID asociado a una cuenta de desarrollador de pago
  • Acceso completo a todos los recursos para desarrolladores.
  • Implementar CI (Integración Continua (EN Continuous Integration)) y CD (Entrega Continua EN Continuous Delivery) con Xcode Cloud.
    • 25 horas de computación al mes
  • Posibilidad de distribuir aplicaciones en el App Store.
  • Utilizar funciones avanzadas de aplicaciones como iCloud, notificaciones push, etc.
  • Invitar a otros desarrolladores a trabajar en tu proyecto como parte de tu equipo.

Añadir una cuenta de Apple ID a Xcode

Para añadir una cuenta de Apple ID a nuestro Xcode, se puede realizar por dos caminos distintos:

  • A través de la creación de un proyecto.
  • A través de Configuraciones... de Xcode.
A través de la creación de un proyecto

En la ventana Choose options for your new project, haz clic sobre el botón Add account....

Xcode: Add your Apple ID Account
Xcode: Choose options for your new project - Team: Add Account...

Nos aparece la ventana de asistente Sign in with your Apple ID.

  • Entra el correo electrónico que tienes asociado a tu Apple ID y sigue los pasos que se te vayan indicando.
Xcode: Add your Apple ID Account
Alt: Xcode: Sign in with your Apple ID - Email or Phone Number: <yourEmailthatActsAsAppleID>
A través de Configuraciones... de Xcode

En la barra de menú de Xcode selecciona Xcode > Settings...

  • Atajo: ⌘,
Xcode: Add your Apple ID Account
Alt: Barra de menú de Xcode - Xcode > Settings...

En la ventana Settings, selecciona Accountsy seguidamente el botón (+).

Xcode: Add your Apple ID Account
Alt: Xcode - Ventana de conviguraciones - Accounts > (+)

Nos aparece la ventana de asistente Sign in with your Apple ID.

  • Entra el correo electrónico que tienes asociado a tu Apple ID y sigue los pasos que se te vayan indicando.
Xcode: Add your Apple ID Account
Alt: Xcode: Sign in with your Apple ID - Email or Phone Number: <yourEmailthatActsAsAppleID>
]]>
<![CDATA[macOS: Create your Apple ID Account]]>https://www.swiftlegacybridge.com/macos-create-your-apple-id-account/6614fce7b726d20001844498Tue, 09 Apr 2024 10:10:39 GMT
macOS: Create your Apple ID Account

ES

If you interact with Apple products or services, you most likely have an Apple ID.

An Apple ID is required to:

  • Buying or downloading apps.
    • On any of your iOS devices, macOS, etc.
  • Use Apple services
    • Access iCloud to store and sync photos, documents and other data across all your Apple devices.
    • Locate lost devices with Apple's Find My.
  • Setting up new Apple devices:
    • When activating a new iPhone, iPad, Mac or other Apple devices.
    • Set up and use HomeKit for smart home devices.
  • Development and publishing:
    • If you want to publish apps to the App Store, an Apple ID is required to join the Apple Developer Program.
    • Access developer resources, download Xcode, use TestFlight for beta testing, etc.

In case you don't have an Apple ID yet, with your Mac you can create one by following the steps below:

  • To open the system settings on your Mac, in the menu bar choose the Apple icon  > System Settings....
macOS: Create your Apple ID Account
Apple > System Settings...
  • Click on Don't Have an Account? button and follow the prompts.
macOS: Create your Apple ID Account
"Sign in with your Apple ID" > Select "Don't Have an Account?"

EN

macOS: Crea tu cuenta ID de Apple

Si interactúas con productos o servicios de Apple, muy probablemente tienes un ID de Apple.

El ID de Apple es necesario para:

  • Comprar o descargar apps.
    • En cualquiera de tus dispositivos iOS, macOS, etc.
  • Utilizar servicios de Apple
    • Acceder a iCloud para almacenar y sincronizar fotos, documentos y otros datos en todos tus dispositivos Apple.
    • Localizar dispositivos perdidos con Find My de Apple.
  • Configuración de nuevos dispositivos Apple:
    • Al activar un nuevo iPhone, iPad, Mac u otros dispositivos Apple.
    • Configurar y utilizar HomeKit para dispositivos domésticos inteligentes.
  • Desarrollo y publicación:
    • Si quieres publicar aplicaciones en el App Store, es necesario un ID de Apple para unirse al Programa de Desarrolladores de Apple.
    • Acceder a recursos para desarrolladores, descargar Xcode, utilizar TestFlight para pruebas beta, etc.

En el caso de que todavía no tuvieras un ID de Apple, con tu Mac te puedes crear uno siguiendo los siguientes pasos:

  • Para abrir la configuración del sistema en tu Mac, en la barra de menú elige el icono de Apple  > System Settings....
macOS: Create your Apple ID Account
Apple > System Settings...
  • Haz clic sobre el botón Don't Have an Account? y sigue los pasos que se te vayan indicando.
macOS: Create your Apple ID Account
"Sign in with your Apple ID" > Selecciona "Don't Have an Account?"
]]>
<![CDATA[Xcode: Run Tests]]> Test or ⌘U.]]>https://www.swiftlegacybridge.com/xcode-run-tests/660d6cef96060400011a5d87Wed, 03 Apr 2024 15:01:38 GMT
Xcode: Run Tests

ES

Product > Test (⌘U)
Xcode: Run Tests
Xcode - Menu Bar - "Product" > Test (⌘U)

To test the project, in the menu bar we click on Product > Test.

  • Shortcut: ⌘U
Check Unit tests results in Project navigator
Xcode: Run Tests
Xcode - Project navigator - Check Unit tests

We can check that the tests we've been working lately are executed correctly in the Project navigator.

  • A green icon with a checkmark indicates that the test methods in the test case passed.
Check Unit tests results in Test navigator
Xcode: Run Tests
Xcode - Test navigator - Check Unit tests

We can check that all tests have been executed correctly in the Test navigator.


EN

Xcode: Ejecutar tests

Xcode: Run Tests
Xcode - Los tests han pasado correctamente
Product > Test (⌘U)
Xcode: Run Tests
Xcode - Barra de Menú - "Product" > "Test ⌘U"

Para ejecutar los Tests Unitarios, en la barra de menú hacemos clic sobre Product > Test.

  • Atajo: ⌘U
Chequear resultados Tests unitarios en el navegador de Proyectos
Xcode: Run Tests
Xcode - Navegador de proyectos - Chequear Tests unitarios

Podemos comprobar que las pruebas en las que hemos estado trabajando últimamente se ejecutan correctamente en el navegador de Proyectos.

  • Un icono verde con una marca de verificación indica que los métodos de prueba del caso de prueba se han superado.
Comprobar los resultados de las pruebas unitarias en el navegador de Tests
Xcode: Run Tests
Xcode - Navegador de Tests - Chequear Tests unitarios

Podemos comprobar que todas las pruebas se han ejecutado correctamente en el navegador de Tests.

]]>
<![CDATA[Xcode: Run a Project]]> Run or ⌘R.]]>https://www.swiftlegacybridge.com/xcode-run-a-project/660d441496060400011a5d5fWed, 03 Apr 2024 14:41:37 GMT
Xcode: Run a Project

ES

Product > Run (⌘R)
Xcode: Run a Project
Xcode - Menu Bar - "Product" > "Run ⌘R"

To run the project, in the menu bar we click on Product > Run.

  • Shortcut:⌘R
Simulator
Xcode: Run a Project
Xcode Simulator: "Hello, World!" message in the center of the screen

As we can see, the app runs on an iPhone simulator.


EN

Xcode: Ejecutar un proyecto

Xcode: Run a Project
Xcode - Ejecutar una app en un simulator
Product > Run (⌘R)
Xcode: Run a Project
Xcode - Barra de menú - "Product" > "Run ⌘R"

Para ejecutar el proyecto, en la barra de menú hacemos clic sobre Product > Run.

  • Atajo: ⌘R
Simulador
Xcode: Run a Project
Simulador de Xcode: Mensaje "Hello, World!" en el centro de la pantalla

Como podemos ver, la app se ejecuta en un simulador de iPhone.

]]>
<![CDATA[Xcode: Create a New SwiftUI Project]]>https://www.swiftlegacybridge.com/xcode-create-a-new-swiftui-project/660c30779003cd0001f8f67eTue, 02 Apr 2024 16:38:30 GMT
Xcode: Create a New SwiftUI Project

ES

Create New Project...
Xcode: Create a New SwiftUI Project
Xcode - Create New Project...

To create a new project, first of all we open Xcode and click on the Create New Project... button.

Create an App for the iOS Operating System
Xcode: Create a New SwiftUI Project
Xcode - "Choose a template for your project" - "iOS" > "App"

We tell the Xcode wizard that we want to create an App for the iOS Operating System.

Product Name
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - Product Name: "<Template>Bridge"

To name the project, replace <Template>Bridge with the name of the App.

  • For example: WeatherBridge.
Team
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - Team: "Add account..."

To run the new app on a simulator it is not necessary to add an account.

  • However, there are a number of advantages that make it advisable to create one. By associating your Apple ID with Xcode you will have
    • the ability to also run your apps on a physical device.
    • access to developer resources such as beta software.
  • If you don't have your Apple ID associated with Xcode yet, you can follow the link below Xcode: Add your Apple ID Account.
Organization Identifier
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - Organization identifier: "com.example"

This text field is a crucial part of the Bundle Identifier of the app, which uniquely identifies your app in the App Store and on devices.

  • It is usually structured in reverse domain name notation and precedes the app name to create the full bundle ID.
    • For example, if your app is called MyApp and your organization's website is [www.example.com], a common organization identifier would be com.example. Therefore, in this case the Bundle ID will be com.example.MyApp.
      • If you do not have a domain, you can create a unique identifier based on your personal name, such as name.johndoe.
Interface, Language, Storage
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - Interface: SwiftUI - Language: "Swift" - Storage: "none"

For SwiftUI projects without access to databases, you can leave the default values.

Include Tests
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - include Tests: off

We chose not to check the Include Tests option that adds test targets automatically.

This decision is based on two main considerations regarding user interface (UI) testing:

  • Performance Impact
    • UI tests simulate user interactions with the application interface, which, while valuable for end-to-end testing, tend to be significantly slower than unit tests.
      • This slower execution can affect the speed of our development and testing cycle, especially in the early stages of development, when we want to maintain agility.
  • Utility and focus
    • At this stage, our main focus is to build the core functionality of our app and ensure its reliability through Unit Tests.
    • Unit tests allow us to validate the logic and behavior of individual components in isolation, providing a fast and efficient way to detect and correct bugs at an early stage.

In another post we will see how to integrate the Unit Tests once the project is already created.

  • With this approach
    • we have control over the test environment and ensure that it is adapted to our specific needs.
    • We can focus on unit tests, running tests more frequently, benefiting from their fast execution to maintain a robust and reliable code base.
  • It is worth noting that the decision to exclude UI testing now does not prevent us from incorporating it later.
    • As our application grows and the need for comprehensive UI testing becomes more apparent, we can easily add a UI testing target to our project.
Select a folder

Indicate in which folder you want the project to be hosted.

End of project creation

Xcode: Create a New SwiftUI Project
Xcode - Snapshot of "WeatherBridge" project

Run (⌘R)

Xcode: Run a Project

Commit

e - New Xcode (15.3) project - Interface: SwiftUI, Language: Swift, Include Tests: off

EN

Xcode: Crear un nuevo proyecto SwiftUI

Xcode: Create a New SwiftUI Project
Discovery Tree - Proyecto "<Placeholder>Bridge" >En progreos "Make new Xcode Project"
Create New Project...
Xcode: Create a New SwiftUI Project
Xcode - Clic sobre el botón "Create New Project..."

Para crear un nuevo proyecto, primero de todo abrimos Xcode y hacemos clic sobre le botón Create New Project....

Crear una App para el Sistema Operativo iOSc
Xcode: Create a New SwiftUI Project
Xcode - "Choose a template for your new project" - "iOS" > "App"

Al asistente de Xcode le indicamos que queremos crear una App para el Sistema Operativo iOS.

Product Name
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - Product Name: "<Template>Bridge"

Para darle nombre al proyecto, sustituye <Template>Bridge por el nombre de la App.

  • Por ejemplo: WeatherBridge
Team
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - Team: "Add account..."

Para ejecutar la nueva app en un simulador no hace falta añadir ninguna cuenta.

  • Sin embargo hay una serie de ventajas que hace aconsejable la creación de ésta. Asociando tu ID de Apple a Xcode tendrás
    • la posibilidad de también ejecutar tus apps en un dispositivo físico.
    • acceso a recursos para desarrolladores como software beta.
  • Si todavía no tienes tu ID de Apple asociado a Xcode, puedes seguir el siguiente enlace Xcode: Añadir tu cuenta de Apple ID.
Organization Identifier
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - Organization identifier: "com.example"

Este campo de texto es una parte crucial del Bundle Identifier de la app, el cual identifica de forma única tu app en la App Store y en los dispositivos.

  • Suele estructurarse en notación inversa de nombres de dominio y precede al nombre de la aplicación para crear el ID del paquete completo.
    • Por ejemplo, si tu app se llama MyApp y el sitio web de tu organización es [www.example.com], un identificador de organización común sería com.example. Por lo tanto, en este caso el Bundle ID será com.example.MyApp.
      • Si no tienes un dominio, puedes crear un identificador único basado en tu nombre personal, como por ejemplo "name.johndoe".
Interface, Language, Storage
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - Interface: SwiftUI - Language: "Swift" - Storage: "none"

Para proyectos SwiftUI sin acceso a Bases de Datos, puedes dejar los valores por defecto.

Include Tests
Xcode: Create a New SwiftUI Project
Xcode - "Choose options for your new project" - include Tests: off

Optamos por no marcar la opción "Include Tests" que añade objetivos (En targets) de prueba automáticamente.

Esta decisión se basa en dos consideraciones principales relativas a las pruebas de interfaz de usuario (IU (EN UI Tests)):

  • **Impacto en el rendimiento **
    • Las pruebas de interfaz de usuario simulan las interacciones del usuario con la interfaz de la aplicación, que, si bien son valiosas para las pruebas de extremo a extremo, tienden a ser significativamente más lentas que las pruebas unitarias.
      • Esta ejecución más lenta puede afectar a la velocidad de nuestro ciclo de desarrollo y pruebas, especialmente en las primeras fases del desarrollo, cuando queremos mantener la agilidad.
  • **Utilidad y enfoque:
    • En esta etapa, nuestro enfoque principal es construir la funcionalidad central de nuestra app y asegurar su confiabilidad a través de pruebas unitarias (EN Unit Tests).
    • Las pruebas unitarias nos permiten validar la lógica y el comportamiento de los componentes individuales de forma aislada, ofreciendo una forma rápida y eficaz de detectar y corregir errores en una fase temprana.

En otra entrada veremos como integrar los Tests Unitarios una vez el proyecto ya está creado.

  • Con este enfoque
    • tenemos el control sobre el entorno de pruebas y garantizamos que se adapte a nuestras necesidades específicas.
    • nos podemos centrar en las pruebas unitarias, ejecutando pruebas con mayor frecuencia, beneficiándonos de su rápida ejecución para mantener una base de código robusta y fiable.
  • Vale la pena señalar que la decisión de excluir las pruebas de interfaz de usuario ahora no nos impide incorporarlas más adelante.
    • A medida que nuestra aplicación crezca y se haga más evidente la necesidad de realizar pruebas de interfaz de usuario exhaustivas, podremos añadir fácilmente un objetivo (EN target) de pruebas de interfaz de usuario a nuestro proyecto.

Seleccionar una carpeta

Indica en que carpeta quieres que se aloje el proyecto.

Fin de la creación del proyecto

Xcode: Create a New SwiftUI Project
Xcode - Snapshot del proyecto "WeatherBridge"

Este es el aspecto de nuestro proyecto en Xcode.

Ejecuta (⌘R)

Xcode: Ejecutar un proyecto

Commit

e - New Xcode (15.3) project - Interface: SwiftUI, Language: Swift, Include Tests: off
]]>
<![CDATA[Miro: Recommended tool for creating Discovery Trees]]>https://www.swiftlegacybridge.com/miro-recommended-tool-for-creating-discovery-trees/6606be41b70e710001d536b1Sat, 30 Mar 2024 09:56:13 GMT
Miro: Recommended tool for creating Discovery Trees

ES

Miro is an ideal application for creating Discovery Trees.

  • It is a paid app but we can try it for free up to three boards.
  • To start using it we have to go to miro.com
Miro: Recommended tool for creating Discovery Trees
miro: Sign up free

To see an example of a Discovery Tree, inside miro search for 🔍 Discovery Trees

  • Select the Dave Ross and Steve Kuo board.
Miro: Recommended tool for creating Discovery Trees
In miro search for "Discovery Tress"

And this is the aspect of the example with explanations of a Discovery Tree.

Miro: Recommended tool for creating Discovery Trees
An example of Discovery Tree in action

EN

Miro: Herramienta recomendada para crear Árboles de Descubrimiento

Miro es una aplicación ideal para crear Árboles de Descubrimiento (EN Discovery Trees).

  • Es una app de pago pero se puede probar de forma gratuita hasta tres tableros (EN boards).
  • Para empezar a utilizarla simplemente tenemos que ir a miro.com.
Miro: Recommended tool for creating Discovery Trees
miro: Sign up free

Para ver un ejemplo de Árbol de Descubrimiento, tenemos que buscar 🔍 Discovery Trees.

  • Seleccionamos el tablero de Dave Ross y Steve Kuo.
Miro: Recommended tool for creating Discovery Trees
In miro search for "Discovery Tress"

Y este es el aspecto del ejemplo con explicaciones de un Árbol de Descubrimiento.

Miro: Recommended tool for creating Discovery Trees
An example of Discovery Tree in action

Temas relacionados

]]>
<![CDATA[Discovery Tree: Visualize the Work in Progress]]>https://www.swiftlegacybridge.com/discovery-tree-visualize-the-work-in-progress/65faa2984b00f7000111a71dWed, 20 Mar 2024 10:54:24 GMT
Discovery Tree: Visualize the Work in Progress

ES

The Discovery Tree is a way to visualize the work in progress.

  • That is, we can communicate to our team and managers what we are working on now, what we have already done, and what has not yet been started.

To learn more about Discovery Trees, Steve Kuo of Industrial Logic in his article Working With Discovery Trees explains that Discovery Trees is a technique for tracking and focusing work in the context of agile development.

  • Starting from a user story, the team uses a board to create and expand a Discovery Tree, thus facilitating visibility of work in progress, completed tasks, and blockages.
  • This technique encourages rapid discussions, adaptation to new requirements and helps maintain team focus.
  • Discovery Trees are presented as an effective way to convey information, be flexible and support the agile philosophy.
  • The examples in Steve Kuo's article are done with the Mural tool, but we in our blog will use the Miro tool (https://miro.com/).

EN

Árbol de descubrimiento: Visualizar el trabajo en curso

El Árbol de descubrimiento (EN Discovery Tree) es una forma de visualizar el trabajo en curso.

  • Es decir, podemos comunicar a nuestro equipo y a los managers en qué estamos trabajando ahora, que es lo que ya hemos hecho, y lo que no se ha comenzado todavía.

Para saber más sobre Árboles de Descubrimiento, Steve Kuo de Industrial Logic en su artículo Working With Discovery Trees explica que los Árboles de Descubrimiento es una técnica de seguimiento y enfoque de trabajo en el contexto del desarrollo ágil.

  • Partiendo de una historia de usuario, el equipo utiliza un tablero (EN board) para crear y expandir un Árbol de Descubrimiento, facilitando así la visibilidad del trabajo en progreso, las tareas completadas y los bloqueos.
  • Esta técnica fomenta discusiones rápidas, la adaptación a nuevos requisitos y ayuda a mantener el enfoque del equipo.
  • Los Árboles de Descubrimiento se presentan como una forma eficaz de transmitir información, ser flexibles y apoyar la filosofía ágil.
  • Los ejemplos del artículo de Steve Kuo están realizados con la herramienta Mural, pero nosotros en nuestro blog utilizaremos la herramienta Miro.
]]>
<![CDATA[Moving with the Times: The Importance of Upgrading to iOS 15]]>https://www.swiftlegacybridge.com/moving-with-the-times-the-importance-of-upgrading-to-ios-15/65f409800ee63a00010b25f0Fri, 15 Mar 2024 09:01:02 GMT
Moving with the Times: The Importance of Upgrading to iOS 15

ES

In this first post I would like to give my opinion on a fact that as of today, Q2 2024, is still happening in some companies.

  • It is about keeping as minimum deployment versions prior to iOS 15.
    • The argument I receive is that users cannot be left in the lurch.
Moving with the Times: The Importance of Upgrading to iOS 15

iOS 15 is compatible with a wide range of iPhones, starting from 6S and newer.

  • This means that the iPhones that cannot run iOS 15 are mainly obsolete models such as iPhones 6, 5S, 5C and 5.

If we check the app usage metrics, we can see that apps are used by very few users with iPhone 5 and 6 models.

  • As the table below shows, the iPhone 6S was released in 2015 and is compatible with iOS version 15.
iOS
Vers.

Year
Swift
Vers.
Xcode
Vers.
macOS
Vers.
iPhone
Models
From
iPhone
SwiftUI
Vers.
6 2012 4 10.8 5
7 2013 5 10.9 5S, 5C
8 2014 1.0 6 10.10 6
9 2015 2.0 7 10.11 6S
10 2016 3.0 8 10.12 7, SE (1st gen.)
11 2017 4.0 9 10.13 8, X
12 2018 4.2 10 10.14 XS, XR
13 2019 5.0 11 10.15 11 1
14 2020 5.3 12 11 Big Sur 12, SE (2nd gen.) 2
15 2021 5.5 13 12 Monterey 13 6S 3
16 2022 5.7 14 13 Ventura 14, SE (3rd gen.) 8, X 4
17 2023 5.9 15 14 Sonoma 15 XS, XR 5

It is clear that we cannot force our users to buy a new iPhone to use our app, but we can ask them to update the iOS versions of their previous generation devices.

  • For just a few, we can't stop the rest of the users from enjoying the advances that are incorporated in each iOS version.
  • Nor can companies continue to assume the cost in time and money of developing and maintaining apps with older versions of the Swift language, and without updating or incorporating new frameworks.

EN

Avanzando con los Tiempos: La Importancia de Actualizar a iOS 15

Moving with the Times: The Importance of Upgrading to iOS 15
Sólo unos pocos usuarios con iPhones modelo 6 o anteriores no podrán utilizar nuestra app

En esta primera entrada me gustaría dar mi opinión sobre un hecho que a día de hoy, segundo trimestre de 2024, todavía está sucediendo en algunas empresas.

  • Se trata de mantener como despliegue mínimo (EN Mínimum Deployment) versiones anteriores a iOS 15.
    • El argumento que recibo es que no se pueden dejar usuarios en la estacada.
Moving with the Times: The Importance of Upgrading to iOS 15

iOS 15 es compatible con una amplia gama de iPhones, a partir del 6S y más recientes.

  • Esto significa que los iPhones que no pueden ejecutar iOS 15 son principalmente modelos obsoletos como por ejemplo los iPhones 6, 5S, 5C y 5.

Si comprobamos las estadísticas de utilización de apps, podemos ver que éstas están utilizadas por muy pocos usuarios con modelos iPhone 5 y 6.

  • Tal y como muestra la siguiente tabla, el iPhone 6S se lanzó en 2015 y es compatible con la versión 15 de iOS.
Vers.
iOS

Año
Vers.
Swift
Vers.
Xcode
Vers.
macOS
Modelos
iPhone
A partir
iPhone
Vers.
SwiftUI
6 2012 4 10.8 5
7 2013 5 10.9 5S, 5C
8 2014 1.0 6 10.10 6
9 2015 2.0 7 10.11 6S
10 2016 3.0 8 10.12 7, SE (1a gen.)
11 2017 4.0 9 10.13 8, X
12 2018 4.2 10 10.14 XS, XR
13 2019 5.0 11 10.15 11 1
14 2020 5.3 12 11 Big Sur 12, SE (2a gen.) 2
15 2021 5.5 13 12 Monterey 13 6S 3
16 2022 5.7 14 13 Ventura 14, SE (3a gen.) 8, X 4
17 2023 5.9 15 14 Sonoma 15 XS, XR 5

Está claro que no podemos obligar a nuestros usuarios a comprar un nuevo iPhone para usar nuestra app, pero sí podemos pedirles que actualicen las versiones iOS de sus dispositivos de anteriores generaciones.

  • Por sólo unos pocos, no podemos hacer que el resto de usuario dejen de disfrutar de los avances que se van incorporando en cada una de las versiones de iOS.
  • Ni tampoco las empresas pueden seguir asumiendo el coste en tiempo y dinero de lo que supone desarrollar y mantener apps con versiones antiguas del lenguaje Swift, y sin la actualización o incorporación de nuevos frameworks.

]]>