Introducción al curso

1

Construyamos una app para iOS

2

Introducción a la arquitectura MVVM

3

Planeando nuestra app

Creando las primeras pantallas de la app

4

Programando la primera pantalla en módulos

5

Escribiendo la lógica para mostrar dos pantallas

6

Pantalla de inicio de sesión con SecureField y Scroll

7

Completando nuestra pantalla de inicio de sesión

8

Pantalla de registro de usuario

9

Comprobando el funcionamiento de nuestras pantallas

10

Estructura de las pantallas con TabView

11

Creando nuestra pantalla home

12

Pantalla home: logo y barra de búsqueda

13

Pantalla home: programación de interfaces estáticas

14

Pantalla home: carruseles

Aplicando arquitectura MVVM

15

Creando estructura para arquitectura MVVM

16

Modelando nuestro JSON

17

Peticiones al servidor

18

Mostrar información de un servidor de manera dinámica

19

Mostrar imágenes de forma dinámica y eficiente con LazyVGrid

Reproductor y búsqueda de video

20

Pasar datos entre pantallas

21

Darle datos de inicio a un Canvas

22

Reproducir videos dinámicamente de un servidor

23

Mostrar imágenes dinámicamente de un servidor

24

Mostrar alertas

25

Programar clase de búsqueda

26

Programar método de búsqueda

Últimas pantallas de la app

27

Pantalla de favoritos

28

Pantalla de perfil de usuario

29

Módulo de ajustes de perfil con Toggle

30

Pantalla de edición de perfil

31

Módulo de edición de perfil

32

Guardado interno de datos

Utilizando la cámara y fotos del iPhone

33

Captura de foto de perfil: ImagePicker y vista Sheet

34

Captura de foto de perfil con la cámara: modificar librerías de terceros

35

Captura de foto de perfil con la cámara: recuperar imágenes guardadas

¿Qué más posibilidades tiene SwiftUI?

36

Mejoremos nuestra app

Escribiendo la lógica para mostrar dos pantallas

5/36
Recursos

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

No sé de los demás lenguajes, pero me da la impresión de que Swift agarra muchas características de JavaScript y sus frameworks

Para una mejor UX, agregue un par de dividers para que muestre mejor en que pantalla se esta…

            HStack{
                Spacer()
                Button(action: {tipoInicioSesion = true}) {
                    VStack {
                        Text("INICIA SESION").fontWeight(.black).foregroundColor(tipoInicioSesion ? .white : .gray)
                        Divider().frame(width: 100, height: 1).background(tipoInicioSesion ? Color("dark-cian") : Color("marine"))
                    }
                }
                
                Spacer()
                
                Button(action: {tipoInicioSesion = false}) {
                    VStack {
                        Text("REGISTRATE").fontWeight(.black).foregroundColor(tipoInicioSesion ? .gray : .white)
                        Divider().frame(width: 100, height: 1).background(tipoInicioSesion ? Color("marine") : Color("dark-cian"))
                    }
                }
                
                Spacer()
            }//.padding(.horizontal, 30)

Recomiendo usar el botón con texto dentro

Button(action: {tipoInicioSesion = true}) {
                    Text("INICIA SESION").fontWeight(.black).foregroundColor(tipoInicioSesion ? .white : .gray)
                }
Mi avance de esta clase.

Código

//
//  ContentView.swift
//  Stream Games
//
//  Created by Maxezio on 28/01/22.
//

import SwiftUI

struct ContentView: View {
    var body: some View {
       
        ZStack{
            
            Color("Background").ignoresSafeArea()
            
            VStack{
                
                Image("logoAPP").resizable().aspectRatio(contentMode: .fit).frame(width: 250).padding(EdgeInsets(top: 10, leading: 0, bottom: 30, trailing: 0))
                
                LoginRegisterView()
                
            }
            
        }
        
    }
}

struct LoginRegisterView: View {
    //Variable
    @State var section = true
    
    var body: some View{
        
        HStack{
            
            Button("INICIA SESIÓN"){
                section.toggle()
            }.padding(EdgeInsets(top: 0, leading: 30, bottom: 10, trailing: 30)).foregroundColor(section ? Color.white : Color.gray).font(.title2)
            
            Spacer()
            
            Button("REGISTRATE"){
                section.toggle()
            }.padding(EdgeInsets(top: 0, leading: 30, bottom: 10, trailing: 30)).foregroundColor(!section ? Color.white : Color.gray).font(.title2)
            
        }
        
        if section {
            Text("Seccion numero 1").foregroundColor(Color.white).font(.title)
        }else{
            Text("Seccion numero 2").foregroundColor(Color.white).font(.title)
        }
        
        Spacer()
        
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Resultado

Estoy siguiendo las clases aunque estoy aprovechando para construir otra app.

Les dejo el código y algunas pantallas de lo que llevo hasta esta clase.

Agregue algunas variables para le manejo de los colores y strings, espero mas adelante veamos algo de como crear plantillas o estilos para cambiar rápidamente los colores en la aplicación

//
//  ContentView.swift
//  AHSummary
//
//  Created by Hector Luna on 11/19/21.
//

import SwiftUI

let LOGIN:String="LOGIN"
let REGISTER:String="REGISTER"
let PRIMARY_COLOR:Color = .white
let SECONDARY_COLOR:Color = .gray


struct ContentView: View {
    var body: some View {
        ZStack{
            BackGround().ignoresSafeArea()
            VStack{
                LogoView().padding()
                LoginAndRegisterView()
                
            }
        }
        
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

struct LogoView:View {
    var body:some View{
        Text("AUTO HOTEL LDL").foregroundColor(PRIMARY_COLOR)
    }
}

struct LoginAndRegisterView:View {
    @State var showLogin = true
    var body:some View{
        VStack {
            HStack {
                Spacer()
                Button(LOGIN) {
                    showLogin=true
                }
                .foregroundColor(showLogin ? PRIMARY_COLOR : SECONDARY_COLOR)
                Spacer()
                Button(REGISTER) {
                    showLogin=false
                }
                .foregroundColor(!showLogin ? PRIMARY_COLOR : SECONDARY_COLOR)
                Spacer()
            }
            Spacer(minLength: 42)
            if (showLogin){
                LoginView()
            }else{
                RegisterView()
            }
        }
    }
}

struct LoginImage:View {
    var body:some View{
        Image("home").resizable().frame(height: 300, alignment: .center)
    }
}

struct BackGround:View {
    var body:some View{
        /*Color(red: 0.4627, green: 0.8392, blue: 1.0)*/
        Color(red: 9/255, green: 67/255, blue: 118/255)
    }
}

struct LoginView:View {
    var body:some View{
        Text("I am Login View ").foregroundColor(PRIMARY_COLOR)
    }
}

struct RegisterView:View {
    var body:some View{
        Text("I am Register View ").foregroundColor(PRIMARY_COLOR)
    }
}
 

Espero les sirva y si tienen algo que aportar es bienvenido

Button(action: {
                        tipoInicio = true
                        print("inicio sesion")
                    }, label: {
                        Text("INICIA SESIóN")
                            .foregroundColor(tipoInicio ? .white : .gray)
                            .font(Font.custom(tipoInicio ?  "SFUIDisplay-Bold" : "SFUIDisplay-Regular" , size: 18))
                            .frame( height: 21)
                    })