SlideShare a Scribd company logo
1 of 42
Download to read offline
Saturday, June 25, 2011
Hello NSCoder I
                          Introducción al desarrollo para iOS



                                  @nscoder_bcn



Saturday, June 25, 2011
NSCoder
                     • Profesionales y entusiatas del mundo de la
                          manzana
                     • NSCoder Night
                      • Cada jueves 19:00 - Frankfurt de Pelayo
                     • Twitter: @nscoder_bcn
                     • http://groups.google.com/group/
                          nscoder_bcn
                     • http://nscoder-bcn.tumblr.com/
                                                  [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Programa (Mañana)
                     • Introducción Objective C / iOS
                     • Gestión de Memoria
                     • Debugging and Memory Leaks
                     • “Hello NSCoder” App
                     • Web Service “What’s up, NSCoder”
                     • Testing
                                               [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Programa (Tarde)

                     • Presentación de Omnis Studio
                     • Introducción a la programación con Omnis
                          Studio
                     • Programación de una aplicación cliente
                          Omnis con XCode para iPhone/iPad



                                                  [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Referencias
                     •    Material (github)

                          •   https://github.com/NSCoderNightBCN/Hello-NSCoder

                     •    Apple Developer

                          •   http://developer.apple.com/

                     •    NSCodeCenter

                          •   http://www.nscodecenter.com/

                     •    85% Cocoa

                          •   http://ochentaycincoporcientococoa.tumblr.com/




                                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Resultado
                     •    App que nos localiza

                     •    Conecta a un Web
                          Service

                     •    Devuelva eventos a
                          nuestros alrededores

                     •    Table View

                     •    Detail View


                                                 [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Introduccion iOS
                             Andreas @aquarioverde




Saturday, June 25, 2011
Requirimientos

                     • Conocimientos Objective C / iOS
                     • MacOS X
                     • iOS SDK
                     • XCode / Interface Builder

                                                [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Objective C

                     •    Class / Instance

                     •    Variable

                          •   Properties

                     •    Method




                                             [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Objective C
                     •        Method
                              - (id)loadNearbyEvents:(CLLocation *)location ofType:(NString *)type;


                              + (id)eventFromPList:(NSString *)listPath;




                  •       Message

                          •    receiver / selector / arguments

                              NCEvent *event = [eventLoader loadNearbyEvents:location ofType:type];




                                                                           [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Objective C
                                                                  Inheritance
                                                                                                                               .h
                          #import <UIKit/UIKit.h>

                          @interface NCEvent : NSObject {
                             NSString *name;
                          }

                          - (id)initWithName:(NSString *)name;

                          @end




                          #import “NCEvent.h”
                                                                                                                               .m
                          @implementation NCEvent

                          - (id)initWithName:(NSString *)name {
                          ...
                          }

                          @end


                                                                                [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Objective C
                     •    Protocol



                          @protocol NCEventDelegate <NSObject>
                                                                                                                     .h
                          @required
                          - (void)didFinishUpdatingData;

                          @end




                          @interface NCController : NSObject <NCEventDelegate> {
                                                                                                                     .h
                          }

                          @end




                                                                      [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS
                  •       Frameworks

                          •   Foundation

                          •   UIKit

                  •       UIView / UITableView

                  •       UINavigationBar

                          •   root / push / pop


                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC




                                 [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC




                          Model

           Data

                                         [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC




                          Model                                      View

           Data                                                                       UI

                                         [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller




                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller




                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller




                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller




                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller
                                                            <delegate>




                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller
                                                            <delegate>
                                                                <datasource>




                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller
                                                            <delegate>
                                                                <datasource>




                                                                outlet


                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller
                                                            <delegate>
                                                                <datasource>




                                                                outlet          action



                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
iOS - MVC
                                  Logica   Controller
                                                            <delegate>
                                                                <datasource>




                                                                outlet          action

           KVO
                          Model                                                     View

           Data                                                                                      UI

                                                        [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
“Hello NSCoder” App
                            Alfonso @setfilesl
                          Andreas @aquarioverde




Saturday, June 25, 2011
Pasos
                     • Crear Proyecto
                     • Crear DetailView & Controller
                     • Crear NCEvent objeto
                     • Add NavigationController
                     • Crear TableView
                     • Push/Pop DetailView
                                                [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
XCode: Crear Proyecto

                     • IDE for Objective C
                     • Templates
                      • Window-based Application
                     • com.nscoderbcn.HelloNSCoder
                     • Include Unit Tests

                                              [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
DetailsViewController
                     • Creación de la View de detalles(XIB) y su
                          Controller
                     • File -> New -> New File
                      • UIViewController subclass
                      • With XIB
                      • Save As: NCDetailsViewController
                                                  [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
XCode Groups
                     • Creación de grupos para organizar el
                          proyecto
                     • File -> New -> New Group
                      • UI
                      • XIB
                      • Model
                                                 [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
IB: DetailView
                     • Herramienta para crear GUI
                     • XIB: XML file que define nuestra view
                     • NIB: compilado del XIB
                     • IBOutlet / IBAction
                      • conectar el Controller con los elementos
                          de la View


                                                 [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Details View
                     • NCEventDetailViewController.xib
                     • añadir y posicionar en UIView
                      • UIImageView
                        • Image: NSCoder_Icon.png
                      • 3 UILabel
                      • UITextView
                                                [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Root View Controller
                     • HelloNSCoderAppDelegate
                      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:                .m
                      (NSDictionary *)launchOptions
                      {

                          NCEventDetailViewController *detailViewController = [[NCEventDetailViewController
                      alloc] init];

                          self.window.rootViewController = detailViewController;
                          [detailViewController release];

                          [self.window makeKeyAndVisible];
                          return YES;
                      }




                                                                                   [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
NCEvent
                     • Creación de la clase con los detalles del
                          evento = Model
                     • File -> New -> New File
                      • Objective C class
                      • Subclass of NSObject
                      • Save As: NCEvent
                                                   [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
NCEvent
                     •       header

                          •     properties & init

                     •       implemenation

                          •     synthesize, init, dealloc

                      @interface NCEvent : NSObject {
                                                                                                                         .h
                      }

                      @property   (nonatomic,   copy) NSString   *name;
                      @property   (nonatomic,   copy) NSString   *shortDescription;
                      @property   (nonatomic,   retain) NSDate   *startDate;
                      @property   (nonatomic,   copy) NSString   *location;
                      @property   (nonatomic,   copy) NSString   *fullDescription;

                      - (id)initWithName:(NSString *)eName startDate:(NSDate *)eStartDate location:(NSString
                      *)eLocation;

                      @end




                                                                                      [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Detail View-Controller
                     •    Conectar NCEventDetailViewController a XIB

                          •   property event

                          •   property outlets para los elementos del XIB

                          •   synthesize & dealloc!!!

                     •    Conectar a elementos en XIB

                      @property (nonatomic, retain) NCEvent *event;
                                                                                                                             .h
                      @property   (nonatomic,   retain)   IBOutlet   UILabel *shortDescriptionLabel;
                      @property   (nonatomic,   retain)   IBOutlet   UILabel *startDateLabel;
                      @property   (nonatomic,   retain)   IBOutlet   UILabel *locationLabel;
                      @property   (nonatomic,   retain)   IBOutlet   UITextView *descriptionView;




                                                                                          [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Load View Data
                     • NCEventDetailViewController
                      • cargar datos el evento al aparecer
                      - (void)viewWillAppear:(BOOL)animated
                      {
                          [self.navigationItem setTitle:event.name];

                          self.shortDescriptionLabel.text = event.shortDescription;

                          NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
                          [formatter setDateFormat:@"yyyy-mm-dd"];
                          self.startDateLabel.text = [formatter stringFromDate:event.startDate];
                          self.locationLabel.text = event.location;
                          self.fullDescriptionTextView.text = event.fullDescription;
                      }




                                                                                  [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Crear Evento
                     • HelloNSCoderAppDelegate
                      • crear un evento y asignalo al Controller
                      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:                .m
                      (NSDictionary *)launchOptions
                      {
                          NCEvent *event = [[NCEvent alloc] initWithName:@"Hello NSCoder" startDate:[NSDate
                      date] location:@"CINC Barcelona"];
                          event.shortDescription = ...

                          NCEventDetailViewController *detailViewController = [[NCEventDetailViewController
                      alloc] init];

                          detailViewController.event = event;
                          [event release];

                           ...
                      }




                                                                                  [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Navigation Controller
                     • HelloNSCoderAppDelegate
                      • crear Navigation Controller
                      • set Detail Controller como root
                      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
                                                                                                                     .m
                      (NSDictionary *)launchOptions
                      {
                          ...

                          NCEventDetailViewController *detailViewController = [[NCEventDetailViewController
                      alloc] init];

                          detailViewController.event = event;
                          [event release];

                          UINavigationController *navController = [[UINavigationController alloc]
                      initWithRootViewController: detailViewController];

                          ...
                      }


                                                                                  [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Navigation Title
                     • NCEventDetailsViewController
                      • asignar un titulo a la Navigation Bar


                      - (void)viewWillAppear:(BOOL)animated
                                                                                                      .m
                      {
                          self.navigationItem.title = event.name;
                          ...




                                                                    [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011
Gracias!

                     • @nscoder_bcn

                     • Alfonso: @setfilesl

                     • Andreas: @aquarioverde

                                                [NSCoderBCN event:@”Hello NSCoder” date:28/05/11]
Saturday, June 25, 2011

More Related Content

Viewers also liked

Asia Pacific HR Leaders' Summit
Asia Pacific HR Leaders' SummitAsia Pacific HR Leaders' Summit
Asia Pacific HR Leaders' SummitAndy Wong
 
Mattra Company Profile
Mattra Company ProfileMattra Company Profile
Mattra Company ProfileAizley Shahar
 
Platform 4 work programme for the civil society forum 2 ukrainian
Platform 4 work programme for the civil society forum 2   ukrainianPlatform 4 work programme for the civil society forum 2   ukrainian
Platform 4 work programme for the civil society forum 2 ukrainianProstirUA
 
Unmarried & Unnoticed: The Audience You Can't Afford To Keep Missing
Unmarried & Unnoticed: The Audience You Can't Afford To Keep MissingUnmarried & Unnoticed: The Audience You Can't Afford To Keep Missing
Unmarried & Unnoticed: The Audience You Can't Afford To Keep MissingCatholicMatch.com
 
Summer2011schedule(2)
Summer2011schedule(2)Summer2011schedule(2)
Summer2011schedule(2)Jami Watson
 
Morning routine
Morning routineMorning routine
Morning routinegrangerc
 
Renata Hota - T-shirt Collection II
Renata Hota - T-shirt Collection IIRenata Hota - T-shirt Collection II
Renata Hota - T-shirt Collection IIRenato Mihzael
 

Viewers also liked (13)

Ch04 eec3
Ch04 eec3Ch04 eec3
Ch04 eec3
 
Asia Pacific HR Leaders' Summit
Asia Pacific HR Leaders' SummitAsia Pacific HR Leaders' Summit
Asia Pacific HR Leaders' Summit
 
Mattra Company Profile
Mattra Company ProfileMattra Company Profile
Mattra Company Profile
 
Quiz
QuizQuiz
Quiz
 
Platform 4 work programme for the civil society forum 2 ukrainian
Platform 4 work programme for the civil society forum 2   ukrainianPlatform 4 work programme for the civil society forum 2   ukrainian
Platform 4 work programme for the civil society forum 2 ukrainian
 
CD analysis
CD analysisCD analysis
CD analysis
 
Ch02 eec3
Ch02 eec3Ch02 eec3
Ch02 eec3
 
Unmarried & Unnoticed: The Audience You Can't Afford To Keep Missing
Unmarried & Unnoticed: The Audience You Can't Afford To Keep MissingUnmarried & Unnoticed: The Audience You Can't Afford To Keep Missing
Unmarried & Unnoticed: The Audience You Can't Afford To Keep Missing
 
1[1]
1[1]1[1]
1[1]
 
Summer2011schedule(2)
Summer2011schedule(2)Summer2011schedule(2)
Summer2011schedule(2)
 
Morning routine
Morning routineMorning routine
Morning routine
 
Renata Hota - T-shirt Collection II
Renata Hota - T-shirt Collection IIRenata Hota - T-shirt Collection II
Renata Hota - T-shirt Collection II
 
Types of NEWPRO Replacement Windows
Types of NEWPRO Replacement WindowsTypes of NEWPRO Replacement Windows
Types of NEWPRO Replacement Windows
 

Similar to iOS Development Introduction at NSCoderBCN Event on May 28th, 2011

FI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS BasicsFI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS BasicsPetr Dvorak
 
iPhone Development Intro
iPhone Development IntroiPhone Development Intro
iPhone Development IntroLuis Azevedo
 
MFF UK - Introduction to iOS
MFF UK - Introduction to iOSMFF UK - Introduction to iOS
MFF UK - Introduction to iOSPetr Dvorak
 
Introduction to-cocos2d
Introduction to-cocos2dIntroduction to-cocos2d
Introduction to-cocos2dsagaroceanic11
 
Cappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application FrameworkCappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application FrameworkAndreas Korth
 
iOS Einführung am Beispiel von play NEXT TEE
iOS Einführung am Beispiel von play NEXT TEEiOS Einführung am Beispiel von play NEXT TEE
iOS Einführung am Beispiel von play NEXT TEEHendrik Ebel
 
iPhone dev intro
iPhone dev introiPhone dev intro
iPhone dev introVonbo
 
Beginning to iPhone development
Beginning to iPhone developmentBeginning to iPhone development
Beginning to iPhone developmentVonbo
 
MFF UK - Advanced iOS Topics
MFF UK - Advanced iOS TopicsMFF UK - Advanced iOS Topics
MFF UK - Advanced iOS TopicsPetr Dvorak
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS DevelopmentJussi Pohjolainen
 
CoconutKit
CoconutKitCoconutKit
CoconutKitdefagos
 
Никита Корчагин - Programming Apple iOS with Objective-C
Никита Корчагин - Programming Apple iOS with Objective-CНикита Корчагин - Programming Apple iOS with Objective-C
Никита Корчагин - Programming Apple iOS with Objective-CDataArt
 
iOS 2 - The practical Stuff
iOS 2 - The practical StuffiOS 2 - The practical Stuff
iOS 2 - The practical StuffPetr Dvorak
 
iOS Development: What's New
iOS Development: What's NewiOS Development: What's New
iOS Development: What's NewNascentDigital
 

Similar to iOS Development Introduction at NSCoderBCN Event on May 28th, 2011 (20)

FI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS BasicsFI MUNI 2012 - iOS Basics
FI MUNI 2012 - iOS Basics
 
iPhone Development Intro
iPhone Development IntroiPhone Development Intro
iPhone Development Intro
 
MFF UK - Introduction to iOS
MFF UK - Introduction to iOSMFF UK - Introduction to iOS
MFF UK - Introduction to iOS
 
Pioc
PiocPioc
Pioc
 
Munchkin
MunchkinMunchkin
Munchkin
 
Introduction to-cocos2d
Introduction to-cocos2dIntroduction to-cocos2d
Introduction to-cocos2d
 
Introduction to Cocos2d
Introduction to Cocos2dIntroduction to Cocos2d
Introduction to Cocos2d
 
Cappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application FrameworkCappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application Framework
 
iOS Einführung am Beispiel von play NEXT TEE
iOS Einführung am Beispiel von play NEXT TEEiOS Einführung am Beispiel von play NEXT TEE
iOS Einführung am Beispiel von play NEXT TEE
 
iPhone dev intro
iPhone dev introiPhone dev intro
iPhone dev intro
 
Beginning to iPhone development
Beginning to iPhone developmentBeginning to iPhone development
Beginning to iPhone development
 
MFF UK - Advanced iOS Topics
MFF UK - Advanced iOS TopicsMFF UK - Advanced iOS Topics
MFF UK - Advanced iOS Topics
 
Quick Start to iOS Development
Quick Start to iOS DevelopmentQuick Start to iOS Development
Quick Start to iOS Development
 
UI testing in Xcode 7
UI testing in Xcode 7UI testing in Xcode 7
UI testing in Xcode 7
 
CoconutKit
CoconutKitCoconutKit
CoconutKit
 
Iphone course 1
Iphone course 1Iphone course 1
Iphone course 1
 
Никита Корчагин - Programming Apple iOS with Objective-C
Никита Корчагин - Programming Apple iOS with Objective-CНикита Корчагин - Programming Apple iOS with Objective-C
Никита Корчагин - Programming Apple iOS with Objective-C
 
Cocos2d 소개 - Korea Linux Forum 2014
Cocos2d 소개 - Korea Linux Forum 2014Cocos2d 소개 - Korea Linux Forum 2014
Cocos2d 소개 - Korea Linux Forum 2014
 
iOS 2 - The practical Stuff
iOS 2 - The practical StuffiOS 2 - The practical Stuff
iOS 2 - The practical Stuff
 
iOS Development: What's New
iOS Development: What's NewiOS Development: What's New
iOS Development: What's New
 

Recently uploaded

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

iOS Development Introduction at NSCoderBCN Event on May 28th, 2011

  • 2. Hello NSCoder I Introducción al desarrollo para iOS @nscoder_bcn Saturday, June 25, 2011
  • 3. NSCoder • Profesionales y entusiatas del mundo de la manzana • NSCoder Night • Cada jueves 19:00 - Frankfurt de Pelayo • Twitter: @nscoder_bcn • http://groups.google.com/group/ nscoder_bcn • http://nscoder-bcn.tumblr.com/ [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 4. Programa (Mañana) • Introducción Objective C / iOS • Gestión de Memoria • Debugging and Memory Leaks • “Hello NSCoder” App • Web Service “What’s up, NSCoder” • Testing [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 5. Programa (Tarde) • Presentación de Omnis Studio • Introducción a la programación con Omnis Studio • Programación de una aplicación cliente Omnis con XCode para iPhone/iPad [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 6. Referencias • Material (github) • https://github.com/NSCoderNightBCN/Hello-NSCoder • Apple Developer • http://developer.apple.com/ • NSCodeCenter • http://www.nscodecenter.com/ • 85% Cocoa • http://ochentaycincoporcientococoa.tumblr.com/ [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 7. Resultado • App que nos localiza • Conecta a un Web Service • Devuelva eventos a nuestros alrededores • Table View • Detail View [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 8. Introduccion iOS Andreas @aquarioverde Saturday, June 25, 2011
  • 9. Requirimientos • Conocimientos Objective C / iOS • MacOS X • iOS SDK • XCode / Interface Builder [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 10. Objective C • Class / Instance • Variable • Properties • Method [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 11. Objective C • Method - (id)loadNearbyEvents:(CLLocation *)location ofType:(NString *)type; + (id)eventFromPList:(NSString *)listPath; • Message • receiver / selector / arguments NCEvent *event = [eventLoader loadNearbyEvents:location ofType:type]; [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 12. Objective C Inheritance .h #import <UIKit/UIKit.h> @interface NCEvent : NSObject { NSString *name; } - (id)initWithName:(NSString *)name; @end #import “NCEvent.h” .m @implementation NCEvent - (id)initWithName:(NSString *)name { ... } @end [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 13. Objective C • Protocol @protocol NCEventDelegate <NSObject> .h @required - (void)didFinishUpdatingData; @end @interface NCController : NSObject <NCEventDelegate> { .h } @end [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 14. iOS • Frameworks • Foundation • UIKit • UIView / UITableView • UINavigationBar • root / push / pop [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 15. iOS - MVC [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 16. iOS - MVC Model Data [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 17. iOS - MVC Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 18. iOS - MVC Logica Controller Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 19. iOS - MVC Logica Controller Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 20. iOS - MVC Logica Controller Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 21. iOS - MVC Logica Controller Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 22. iOS - MVC Logica Controller <delegate> Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 23. iOS - MVC Logica Controller <delegate> <datasource> Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 24. iOS - MVC Logica Controller <delegate> <datasource> outlet Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 25. iOS - MVC Logica Controller <delegate> <datasource> outlet action Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 26. iOS - MVC Logica Controller <delegate> <datasource> outlet action KVO Model View Data UI [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 27. “Hello NSCoder” App Alfonso @setfilesl Andreas @aquarioverde Saturday, June 25, 2011
  • 28. Pasos • Crear Proyecto • Crear DetailView & Controller • Crear NCEvent objeto • Add NavigationController • Crear TableView • Push/Pop DetailView [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 29. XCode: Crear Proyecto • IDE for Objective C • Templates • Window-based Application • com.nscoderbcn.HelloNSCoder • Include Unit Tests [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 30. DetailsViewController • Creación de la View de detalles(XIB) y su Controller • File -> New -> New File • UIViewController subclass • With XIB • Save As: NCDetailsViewController [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 31. XCode Groups • Creación de grupos para organizar el proyecto • File -> New -> New Group • UI • XIB • Model [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 32. IB: DetailView • Herramienta para crear GUI • XIB: XML file que define nuestra view • NIB: compilado del XIB • IBOutlet / IBAction • conectar el Controller con los elementos de la View [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 33. Details View • NCEventDetailViewController.xib • añadir y posicionar en UIView • UIImageView • Image: NSCoder_Icon.png • 3 UILabel • UITextView [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 34. Root View Controller • HelloNSCoderAppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: .m (NSDictionary *)launchOptions { NCEventDetailViewController *detailViewController = [[NCEventDetailViewController alloc] init]; self.window.rootViewController = detailViewController; [detailViewController release]; [self.window makeKeyAndVisible]; return YES; } [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 35. NCEvent • Creación de la clase con los detalles del evento = Model • File -> New -> New File • Objective C class • Subclass of NSObject • Save As: NCEvent [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 36. NCEvent • header • properties & init • implemenation • synthesize, init, dealloc @interface NCEvent : NSObject { .h } @property (nonatomic, copy) NSString *name; @property (nonatomic, copy) NSString *shortDescription; @property (nonatomic, retain) NSDate *startDate; @property (nonatomic, copy) NSString *location; @property (nonatomic, copy) NSString *fullDescription; - (id)initWithName:(NSString *)eName startDate:(NSDate *)eStartDate location:(NSString *)eLocation; @end [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 37. Detail View-Controller • Conectar NCEventDetailViewController a XIB • property event • property outlets para los elementos del XIB • synthesize & dealloc!!! • Conectar a elementos en XIB @property (nonatomic, retain) NCEvent *event; .h @property (nonatomic, retain) IBOutlet UILabel *shortDescriptionLabel; @property (nonatomic, retain) IBOutlet UILabel *startDateLabel; @property (nonatomic, retain) IBOutlet UILabel *locationLabel; @property (nonatomic, retain) IBOutlet UITextView *descriptionView; [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 38. Load View Data • NCEventDetailViewController • cargar datos el evento al aparecer - (void)viewWillAppear:(BOOL)animated { [self.navigationItem setTitle:event.name]; self.shortDescriptionLabel.text = event.shortDescription; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-mm-dd"]; self.startDateLabel.text = [formatter stringFromDate:event.startDate]; self.locationLabel.text = event.location; self.fullDescriptionTextView.text = event.fullDescription; } [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 39. Crear Evento • HelloNSCoderAppDelegate • crear un evento y asignalo al Controller - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: .m (NSDictionary *)launchOptions { NCEvent *event = [[NCEvent alloc] initWithName:@"Hello NSCoder" startDate:[NSDate date] location:@"CINC Barcelona"]; event.shortDescription = ... NCEventDetailViewController *detailViewController = [[NCEventDetailViewController alloc] init]; detailViewController.event = event; [event release]; ... } [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 40. Navigation Controller • HelloNSCoderAppDelegate • crear Navigation Controller • set Detail Controller como root - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: .m (NSDictionary *)launchOptions { ... NCEventDetailViewController *detailViewController = [[NCEventDetailViewController alloc] init]; detailViewController.event = event; [event release]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController: detailViewController]; ... } [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 41. Navigation Title • NCEventDetailsViewController • asignar un titulo a la Navigation Bar - (void)viewWillAppear:(BOOL)animated .m { self.navigationItem.title = event.name; ... [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011
  • 42. Gracias! • @nscoder_bcn • Alfonso: @setfilesl • Andreas: @aquarioverde [NSCoderBCN event:@”Hello NSCoder” date:28/05/11] Saturday, June 25, 2011