<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://knoppia.net/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://knoppia.net/feed.php">
        <title>Knoppia swift</title>
        <description></description>
        <link>https://knoppia.net/</link>
        <image rdf:resource="https://knoppia.net/lib/exe/fetch.php?media=favicon.ico" />
       <dc:date>2026-04-17T06:55:10+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:clases&amp;rev=1701121820&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:firebase&amp;rev=1702495113&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:generar_clase_json&amp;rev=1699457136&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:introduccion&amp;rev=1700734639&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:navigation_controller&amp;rev=1702477768&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:programacionorientadaobjetos&amp;rev=1700737832&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:proyecto_xcode&amp;rev=1699456164&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:separadores&amp;rev=1699462416&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:storyboard&amp;rev=1700671477&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:tableview&amp;rev=1701268879&amp;do=diff"/>
                <rdf:li rdf:resource="https://knoppia.net/doku.php?id=swift:userdefaults&amp;rev=1705022082&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://knoppia.net/lib/exe/fetch.php?media=favicon.ico">
        <title>Knoppia</title>
        <link>https://knoppia.net/</link>
        <url>https://knoppia.net/lib/exe/fetch.php?media=favicon.ico</url>
    </image>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:clases&amp;rev=1701121820&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-27T21:50:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Como crear una nueva clase en Xcode</title>
        <link>https://knoppia.net/doku.php?id=swift:clases&amp;rev=1701121820&amp;do=diff</link>
        <description>Como crear una nueva clase en Xcode

Para crear una nueva clase en Xcode primero debemos ir a File -&gt; New File:



Tras eso nos aparecerá la siguiente ventana, en la que seleccionaremos “Cocoa Touch Class”:



En la siguiente sección que aparecerá introduciremos el nombre de la clase. En este caso no tocaremos subclass e indicaremos que el lenguaje de programación que estamos utilizando es Swift.</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:firebase&amp;rev=1702495113&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-13T19:18:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Introducción a FireBase (Xcode 14.2)</title>
        <link>https://knoppia.net/doku.php?id=swift:firebase&amp;rev=1702495113&amp;do=diff</link>
        <description>Introducción a FireBase (Xcode 14.2)

En esta sección vamos a ver como crear una base de datos en FireBase y como añadirla a nuestro proyecto Xcode.

Creamos la base en FireBase

Para crear nuestra base de datos en FireBase primero debemos ir a &lt;https://firebase.google.com&gt;, donde le daremos a</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:generar_clase_json&amp;rev=1699457136&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-08T15:25:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Clase a partir de JSON</title>
        <link>https://knoppia.net/doku.php?id=swift:generar_clase_json&amp;rev=1699457136&amp;do=diff</link>
        <description>Clase a partir de JSON

Usaremos el siguiente JSON de ejemplo obtenido de &lt;https://www.objgen.com/json?demo=true&gt;:


{
  &quot;product&quot;: &quot;Live JSON generator&quot;,
  &quot;version&quot;: 3.1,
  &quot;releaseDate&quot;: &quot;2014-06-25T00:00:00.000Z&quot;,
  &quot;demo&quot;: true,
  &quot;person&quot;: {
    &quot;id&quot;: 12345,
    &quot;name&quot;: &quot;John Doe&quot;,
    &quot;phones&quot;: {
      &quot;home&quot;: &quot;800-123-4567&quot;,
      &quot;mobile&quot;: &quot;877-123-1234&quot;
    },
    &quot;email&quot;: [
      &quot;jd@example.com&quot;,
      &quot;jd@example.org&quot;
    ],
    &quot;dateOfBirth&quot;: &quot;1980-01-02T00:00:00.000Z&quot;,
    &quot;regist…</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:introduccion&amp;rev=1700734639&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:17:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Introducción a swift</title>
        <link>https://knoppia.net/doku.php?id=swift:introduccion&amp;rev=1700734639&amp;do=diff</link>
        <description>Introducción a swift

Librerías básicas
Import Foundation

Opcionalidad

Una variable puede ser opcional, no tiene valor.


var optionalString = &quot;Hello&quot;
print(optionalString == nil)//Esto sería un False

var optionalName: String? = &quot;patata&quot;
var greeting = &quot;Hola&quot;
if let name = optionalName{
   greeting = &quot;Hola, \(name)&quot;
}</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:navigation_controller&amp;rev=1702477768&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-13T14:29:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Navigation Controller en Swift</title>
        <link>https://knoppia.net/doku.php?id=swift:navigation_controller&amp;rev=1702477768&amp;do=diff</link>
        <description>Navigation Controller en Swift

Se trata de las flechitas de retorno que se suelen encontrar en la parte superior izquierda de las aplicaciones para IOS que sustituyen el botón de regresar del iphone.</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:programacionorientadaobjetos&amp;rev=1700737832&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T11:10:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Programación orientada a objetos en swift</title>
        <link>https://knoppia.net/doku.php?id=swift:programacionorientadaobjetos&amp;rev=1700737832&amp;do=diff</link>
        <description>Programación orientada a objetos en swift

Clases


  class forma{
    var lados = Int?//Atributo. Indicamos que el valor es opcional, si no se asigna valor será nil (Equivalente a NULL en este lenguaje)
    
    init(lados: Int){//Constructor de la clase
      self.lados = lados//El this es Self en Swift
    }
    
    func descSimple()-&gt;String{//metodo
      return &quot;una forma con \(lados)&quot;
    }
  }
  var formilla = forma()//instanciamos un objeto de la clase forma
  formilla.lados = 7 //Le as…</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:proyecto_xcode&amp;rev=1699456164&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-08T15:09:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Crear Proyecto Xcode</title>
        <link>https://knoppia.net/doku.php?id=swift:proyecto_xcode&amp;rev=1699456164&amp;do=diff</link>
        <description>Crear Proyecto Xcode

Primero pulsamos en crear Single View App(En versiones posteriores sería seleccionar la pestaña IOS y App):

 y después los siguientes datos:

Tras eso pulsamos en next y seleccionamos la ubicación para guardar el archivo.

Ajustes del Proyecto</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:separadores&amp;rev=1699462416&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-08T16:53:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>swift:separadores</title>
        <link>https://knoppia.net/doku.php?id=swift:separadores&amp;rev=1699462416&amp;do=diff</link>
        <description>Para facilitar la búsqueda de elementos en el código tenemos los separadores que se definen como:


//  MARK: - Separador


Se puede utilizar pulsando en la parte superior de la ventana donde aparece el indicador de dirección:


Tras eso nos saldrá un menú desplegable que nos permitirá ir al separador y otras secciones del código:</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:storyboard&amp;rev=1700671477&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-22T16:44:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>StoryBoard con Swift</title>
        <link>https://knoppia.net/doku.php?id=swift:storyboard&amp;rev=1700671477&amp;do=diff</link>
        <description>StoryBoard con Swift

En Screenlane.com tenemos ejemplos de interfaces.

Se recomienda crear una carpeta llamada View y guardar en ella los archivos LaunchScreen.storyboard y Main.storyboard


Para los iconos hay que descargar FS Symbols: &lt;https://developer.apple.com/sf-symbols/&gt;

Como diseñar para varias interfaces</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:tableview&amp;rev=1701268879&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-29T14:41:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>TableView en Swift</title>
        <link>https://knoppia.net/doku.php?id=swift:tableview&amp;rev=1701268879&amp;do=diff</link>
        <description>TableView en Swift

Un ejemplo de TableView sería un calendario. Cada elemento colocado en una columna ocupa una fila entera.

Las celdas dentro de este contenedor se llaman TableViewCell
Un tableviewController es una combinación que añade el tableView y el TableviewCell</description>
    </item>
    <item rdf:about="https://knoppia.net/doku.php?id=swift:userdefaults&amp;rev=1705022082&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-12T01:14:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>UserDefaults para persistencia en Swift</title>
        <link>https://knoppia.net/doku.php?id=swift:userdefaults&amp;rev=1705022082&amp;do=diff</link>
        <description>UserDefaults para persistencia en Swift

Guardar datos



//Guardamos el ID del usuario
let userID = &quot;IDdeUsuario&quot;
UserDefaults.standard.set(userID, forKey: &quot;UserID&quot;)

// Guardar el último evento visitado
let lastEventID = &quot;evento789&quot;
UserDefaults.standard.set(lastEventID, forKey: &quot;LastEventID&quot;)

// Sincronizar para asegurarse de que los cambios se guarden inmediatamente
UserDefaults.standard.synchronize()</description>
    </item>
</rdf:RDF>
