SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Erisvaldo Gadelha Saraiva Júnior



Desenvolvendo para

iOS em Linux
                        E-mail: erisvaldojunior@gmail.com
                             Site: http://erisvaldojunior.com
                 Twitter: http://twitter.com/erisvaldojunior
Sobre o palestrante

           Analista de Sistemas da Cehap (Companhia Estadual de
           Habitação Popular);

           Desenvolvedor Mobile e participante do projeto Ginga pelo
           Lavid (Laboratório de Tecnologias para o Ensino Virtual e
           Estatística), situado na Universidade Federal da Paraíba;

           Empreendedor da Yupi Studios (http://yupistudios.com),
           startup voltada para a criação de conteúdo criativo para
           dispositivos móveis;

           Bacharel em Ciência da Computação pela Universidade Federal
           da Paraíba e Tecnólogo em Sistemas para Internet pelo
           Instituto Federal de Educação, Ciência e Tecnologia.
Sobre a Yupi Studios




    www.yupistudios.com
Games (MinerMan)
Aplicativos (Pump Me Up!)
Objetivo
                         Desenvolver aplicações para a plataforma iOS 3 (iPod Touch,
                         iPhone 2G, iPhone 3G, iPhone 3GS e iPad) em Linux, através de
Organize with Sections

                         compilação cruzada com o Toolchain para iPhone.


                                                             Não é necessário ter um Mac
                                                             OS X e utilizar a IDE Xcode para
                                                             desenvolver      para    iPhone.
                                                             Graças ao Toolchain para
                                                             iPhone, é possível desenvolver
                                                             para     iOS     em     qualquer
                                                             distribuição Linux.
O que é o iOS?
             Sistema operacional desenvolvido pela Apple para dispositivos
             móveis (iPhone, iPad e iPod Touch).

                  O iOS atualmente se encontra na versão 4.x e é baseado no
                  Mac OS X;

                  O kit de desenvolvimento para iOS (o iOS SDK) está
                  disponível apenas para Mac OS X. A linguagem de
Introdução




                  programação utilizada no desenvolvimento para iOS é o
                  Objective-C e a IDE, o XCode. Além disso, para testar suas
                  aplicações no aparelho, é necessário possuir a licença do iOS
                  Developer Program, ao custo de 99 dólares anuais.

                  Distribuição de aplicações única e exclusivamente através da
                  Apple App Store.
Desenvolvendo para iOS em Mac OS X
             XCode IDE, Interface Builder e iPhone Simulator
Introdução
Apple App Store
            Loja de aplicativos para iOS gerenciada pela Apple e disponível
            através dos próprios aparelhos.


                 Em julho de 2008 foi lançada a Apple App Store, na qual o
                 desenvolvedor paga uma anuidade 99 dólares, define o
                 preço final de suas aplicações e recebe 70% do lucro total;
Motivação




                 A loja vem sendo um sucesso absoluto. Disponível em 77
                 países, com mais de 75 mil aplicações e 1,5 bilhão de
                 downloads realizados, números que crescem a cada dia;

                 A Apple App Store definiu uma nova era no mercado Mobile,
                 com vários fabricantes (e agora operadoras) lançando suas
                 próprias lojas de aplicativos nos meses seguintes.
Motivação
                         Segundo a AdMob, a Apple App Store movimenta incríveis 200
                         milhões de dólares por mês, somando um total de 2,4 bilhões por
                         ano.
Organize with Sections




                                                              Trism, um jogo casual que foi
                                                              lançado no início da Apple App
                                                              Store (similar ao Bejeweled),
                                                              rendeu ao seu desenvolvedor,
                                                              Steve Demeter, U$ 250.000,00
                                                              em apenas dois meses.
Motivação
                         A Apple App Store possui o maior mercado de aplicações pagas
                         e gratuitas entre todas as lojas de aplicativos mobile.
Organize with Sections
Motivação
                         A média de downloads da Apple App Store é superior a do Android
                         Market, bem como a porcentagem de usuários que compram
                         aplicações.
Organize with Sections
Etapas do Desenvolvimento


 Configurar o   Escrever o             Testar no
  ambiente        código               aparelho




                        Desenvolvendo para iOS em Linux
Configurar o Ambiente

         Atualização do Firmware do aparelho;
                         Jailbreak do aparelho;
                        Download do iOS SDK;
                      Instalação do Toolchain.
Atualização do Firmware do iPhone



        Instalar o iTunes (Mac OS / Windows)
        http://www.apple.com/br/itunes/download/

        Baixar o Firmware 3.1.3 do iPhone
        http://limitededitioniphone.com/where-can-i-get-an-old-
        iphone-firmware/

        Atualizar o Firmware utilizando o iTunes. Em caso de problema,
        utilizar uma versão anterior do iTunes (como a versão 7.2, por
        exemplo).
Jailbreak do iPhone



         Instalar o redsn0w (Mac OS / Windows)
         http://www.redsnow.com

         Realizar o Jailbreak do iPhone
         http://www.connectionworld.org/como-desbloquear-o-iphone-
         com-firmware-3-0/
Download do iPhone SDK


        Baixar o iPhone SDK 3.1.3
        http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-
        iphone-sdk.html


        Link Direto
        http://developer.apple.com/ios/download.action?path=/iphone/ip
        hone_sdk_3.1.3__final/iphone_sdk_3.1.3_with_xcode_3.2.1__sno
        w_leopard__10m2003a.dmg
O que é o Toolchain para iPhone?
                          À grosso modo, o Open Toolchain para iPhone é um conjunto de
                          ferramentas que permitem a realização de compilação cruzada para
Instalação do Toolchain

                          iPhone, ou seja, gerar código para a arquitetura ARM a partir da
                          80x86, permitindo assim a criação de um executável para iOS.


                                Site do projeto “iphonedevonlinux”
                                http://code.google.com/p/iphonedevonlinux/


                                Instruções de instalação
                                http://code.google.com/p/iphonedevonlinux/wiki/Installation
Após instalado…
                          Será criada uma pasta toolchain/ com a subpasta apps/, onde
                          ficarão as pastas referentes aos projetos criados.
Instalação do Toolchain



                               O Toolchain já possui um projeto de exemplo chamado
                               HelloToolchain, que se encontra em apps/HelloToolchain.

                               O código-fonte da aplicação fica na subpasta src/ e um
                               makefile é colocado na raiz da aplicação.

                               Também é criada uma pasta img/, na qual devem ser
                               colocados o ícone da aplicação, imagem default (que será
                               utilizada na Splash Screen) e demais imagens utilizadas pela
                               aplicação.
Escrever o Código



                “Hello World” em iOS
Sobre a linguagem Objective-C

           É uma linguagem de programação reflexiva, orientada a
           objetos, que suporta transmissão de mensagens no estilo
           SmallTalk para a linguagem C;

           Utilizada principalmente no Mac OS X. É a principal linguagem
           utilizada no Cocoa (uma das cinco maiores APIs disponíveis
           para o Mac OS X e a API disponível para o iOS);

           Programas genéricos em Objective-C que não façam uso de
           bibliotecas de terceiros também podem ser compilados por
           qualquer sistema suportado pelo gcc, que inclui um compilador
           Objective-C.
Tutoriais de Objective-C



            Introdução    rápida    e     objetiva  do     Objective-C:
            http://www.cs.indiana.edu/classes/c304/ObjC.html


            Tutorial simples, orientado ao utilizador:
            http://www.otierney.net/objective-c.html




            Tutorial “Objective-Oriented Programming and The Objective-C
            Language”. Disponível em: http://objc.toodarkpark.net/
Que IDE utilizar?

                      Pode-se utilizar qualquer IDE para o desenvolvimento, uma vez
                      que não será utilizada nenhum tipo de ferramenta visual (no
Escrevendo o Código


                      caso do desenvolvimento em Mac existe um Construtor de
                      Interface). Recomenda-se o KDevelop ou qualquer outra IDE
                      que tenha suporte a linguagem Objective-C.



                            Site do projeto KDevelop
                            http://www.kdevelop.org/
O código do Hello World
                   que vem com o Open
                   Toolchain para iPhone é
                   composto por dois
                   arquivos:
                   HelloToolchain.h      e
                   HelloToolchain.m.

Hello Toolchain!   A
                   applicationDidFinishLaunching()
                                                  função
                                                       é
                   chamada assim que a aplicação é
                   iniciada e deve ser implementada de
                   forma a exibir as informações
                   desejadas na tela do aparelho.
Em que consiste o HelloToolchain.h?
                   Da mesma forma que no C/C++, o Objective-C possui arquivos de
                   cabeçalho (headers).

                   O header contém, entre as annotations @interface e @end, as
                   variáveis e funções que serão implementadas pelo arquivo de código,
                   de extensão .m.
HelloToolchain.h




                   As bibliotecas são importadas no mesmo estilo de C, trocando-se
                   #include por #import.
Em que consiste o HelloToolchain.m?

                   O .m contém, além do main(), entre as annotations
                   @implementation e @end, a implementação das funções
                   declaradas no arquivo de cabeçalho.
HelloToolchain.m




                   No main(), aloca-se uma instância de NSAutoReleasePool, uma
                   fila de objetos que serão automaticamente desalocados pelo
                   sistema. Logo após, chama-se o UIApplicationMain passando
                   como parâmetros os argumentos de inicialização do main()
                   bem como o título da aplicação.

                   Em applicationDidFinishLaunching(), prepara-se a janela da
                   aplicação, na qual serão adicionadas as views (componentes de
                   interface) da aplicação, como textos, botões, etc. Por fim,
                   torna-se a janela visível.
HelloToolchain.m
Criando interfaces no iPhone com o UIKit




                    Porção do UIKit
Criando interfaces
no iPhone com o UIKit




    Visão geral
        do
       UIKit
Testar no aparelho



Como testar sua aplicação no aparelho, usando o Toolchain
Como testar a aplicação no aparelho?

                   Uma vez produzido o código da aplicação, deve-se executar o
                   make preparado pelo Toolchain na pasta raiz. Eventualmente
                   serão necessárias mudanças no makefile, para compilar novos
                   arquivos de código, por exemplo.
Testar no iPhone




                   O make deve ser executado após definir-se duas variáveis: IP
                   do iPhone (que deve estar na mesma rede que o PC) e PATH
                   dos binários do toolchain. Além disso, deve acompanhar o
                   parâmetro deploy para que a aplicação seja enviada para o
                   iPhone via SSH (usando Wi-fi).

                   Durante o deploy, pedir-se-á a senha para acessar o iPhone via
                   SSH. Por padrão, a senha é alpine.
Trocando em miúdos…
                   Na      raiz    da      pasta       da       aplicação   (ex:
                   toolchain/apps/HelloToolchain/), executa-se:


                    Para apenas compilar a aplicação:
Testar no iPhone




                    sudo
                    PATH=PATH_DO_TOOLCHAIN/pre/bin:$PATH make


                   Para compilar e enviar a aplicação para o iPhone:

                   sudo IP=IP_DO_IPHONE
                   PATH=PATH_DO_TOOLCHAIN/pre/bin:$PATH make deploy
What’s Your Message?
OBRIGADO!

Mais conteúdo relacionado

Mais procurados

Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Programando para Iphone e Ipad
Programando para Iphone e IpadProgramando para Iphone e Ipad
Programando para Iphone e IpadMikeNandes
 
Apresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesTiago Carmo
 
Seminário sistemas operacionais móveis
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveisArthur Azevedo
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisÉdipo Souza
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Jose Berardo
 
Música 2.0 e Aplicativos Mobile
Música 2.0 e Aplicativos MobileMúsica 2.0 e Aplicativos Mobile
Música 2.0 e Aplicativos MobileWebCarioca
 
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)Ivan Marks
 
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011Bruno Cicanci
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidSalvador Torres
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3Jose Berardo
 
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Júlia Fernandes Alves
 

Mais procurados (20)

Android Aula 1
Android Aula 1Android Aula 1
Android Aula 1
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Programando para Iphone e Ipad
Programando para Iphone e IpadProgramando para Iphone e Ipad
Programando para Iphone e Ipad
 
Apresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para Smartphones
 
Seminário sistemas operacionais móveis
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveis
 
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias DigitaisApresentação de minha Monografia do curso de Sistema e Mídias Digitais
Apresentação de minha Monografia do curso de Sistema e Mídias Digitais
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Música 2.0 e Aplicativos Mobile
Música 2.0 e Aplicativos MobileMúsica 2.0 e Aplicativos Mobile
Música 2.0 e Aplicativos Mobile
 
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
 
Android x iOS
Android x iOSAndroid x iOS
Android x iOS
 
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
Desenvolvimento de Jogos Para Dispositivos Móveis - UFRJ - GECOM2011
 
Android
AndroidAndroid
Android
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google Android
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Flash mobile
Flash mobileFlash mobile
Flash mobile
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 

Destaque

Primeiros passos no iOS com Objective-C
Primeiros passos no iOS com Objective-CPrimeiros passos no iOS com Objective-C
Primeiros passos no iOS com Objective-Cosnipso
 
Sistema Operativo iOS
Sistema Operativo iOSSistema Operativo iOS
Sistema Operativo iOSjatzen01
 
IOS sistema operacional
IOS sistema operacionalIOS sistema operacional
IOS sistema operacionalHamburg Süd
 
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSSISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSTenshiDam
 
Principales características de windows
Principales características de windowsPrincipales características de windows
Principales características de windowsazrahim
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Erisvaldo Junior
 
Swift em 45 minutos - TDC Sao Paulo 2014
Swift em 45 minutos - TDC Sao Paulo 2014Swift em 45 minutos - TDC Sao Paulo 2014
Swift em 45 minutos - TDC Sao Paulo 2014Helder da Rocha
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma AndroidÉdipo Souza
 
Introdução ao Swift por Henrique Morbin – iOS Developer
Introdução ao Swift por Henrique Morbin – iOS DeveloperIntrodução ao Swift por Henrique Morbin – iOS Developer
Introdução ao Swift por Henrique Morbin – iOS DeveloperHenrique Morbin
 
Programação funcional com swift cocoa heads 24-03
Programação funcional com swift  cocoa heads 24-03Programação funcional com swift  cocoa heads 24-03
Programação funcional com swift cocoa heads 24-03Schwarzenegger Alves
 
Componentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em AndroidComponentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em Androidwelingtonms
 
Padrões de projeto para o Android - Interação para desenvolvedores
Padrões de projeto para o Android - Interação para desenvolvedoresPadrões de projeto para o Android - Interação para desenvolvedores
Padrões de projeto para o Android - Interação para desenvolvedoresGustavo Bitencourt
 
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSSISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSAna Morales
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftJuliana Chahoud
 
Sistema Operacional Móvel iOS
Sistema Operacional Móvel iOSSistema Operacional Móvel iOS
Sistema Operacional Móvel iOSDj Black
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosWellington Oliveira
 

Destaque (20)

Primeiros passos no iOS com Objective-C
Primeiros passos no iOS com Objective-CPrimeiros passos no iOS com Objective-C
Primeiros passos no iOS com Objective-C
 
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSSISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
 
Sistema Operativo iOS
Sistema Operativo iOSSistema Operativo iOS
Sistema Operativo iOS
 
Sistema Operacional iOS
Sistema Operacional iOSSistema Operacional iOS
Sistema Operacional iOS
 
IOS sistema operacional
IOS sistema operacionalIOS sistema operacional
IOS sistema operacional
 
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSSISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
 
Principales características de windows
Principales características de windowsPrincipales características de windows
Principales características de windows
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Swift em 45 minutos - TDC Sao Paulo 2014
Swift em 45 minutos - TDC Sao Paulo 2014Swift em 45 minutos - TDC Sao Paulo 2014
Swift em 45 minutos - TDC Sao Paulo 2014
 
Mercado iOS & Swift vs Objective-C
Mercado iOS & Swift vs Objective-CMercado iOS & Swift vs Objective-C
Mercado iOS & Swift vs Objective-C
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Introdução ao Swift por Henrique Morbin – iOS Developer
Introdução ao Swift por Henrique Morbin – iOS DeveloperIntrodução ao Swift por Henrique Morbin – iOS Developer
Introdução ao Swift por Henrique Morbin – iOS Developer
 
Desvendando o mundo iOS
Desvendando o mundo iOSDesvendando o mundo iOS
Desvendando o mundo iOS
 
Programação funcional com swift cocoa heads 24-03
Programação funcional com swift  cocoa heads 24-03Programação funcional com swift  cocoa heads 24-03
Programação funcional com swift cocoa heads 24-03
 
Componentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em AndroidComponentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em Android
 
Padrões de projeto para o Android - Interação para desenvolvedores
Padrões de projeto para o Android - Interação para desenvolvedoresPadrões de projeto para o Android - Interação para desenvolvedores
Padrões de projeto para o Android - Interação para desenvolvedores
 
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOSSISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
 
Sistema Operacional Móvel iOS
Sistema Operacional Móvel iOSSistema Operacional Móvel iOS
Sistema Operacional Móvel iOS
 
Capítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais ModernosCapítulo 5 Sistemas Operacionais Modernos
Capítulo 5 Sistemas Operacionais Modernos
 

Semelhante a Desenvolvendo para iOS em linux

Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisRogério Moraes de Carvalho
 
Desenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneDesenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneBruno Pires
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOSDevmedia
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileCícero Moura
 
Apresentação dev ios
Apresentação dev iosApresentação dev ios
Apresentação dev iosFlavio Rabelo
 
Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!Comunidade Tá safo!
 
Ionic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPIonic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPFabio Godoy
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesWilliam S. Rodriguez
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Impacta Eventos
 
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)Henrique Dezani
 
Asoso tipos de aplicações móveis (1)
Asoso   tipos de aplicações móveis (1)Asoso   tipos de aplicações móveis (1)
Asoso tipos de aplicações móveis (1)grupouro
 
Asoso tipos de aplicações móveis (1)
Asoso   tipos de aplicações móveis (1)Asoso   tipos de aplicações móveis (1)
Asoso tipos de aplicações móveis (1)grupouro
 
Adobe Phonegap
Adobe PhonegapAdobe Phonegap
Adobe Phonegapwlsilva
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISOs Fantasmas !
 

Semelhante a Desenvolvendo para iOS em linux (20)

Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
 
Desenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneDesenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhone
 
Beginning Iphone
Beginning IphoneBeginning Iphone
Beginning Iphone
 
Introdução a programação para plataforma iOS
Introdução a programação para plataforma iOSIntrodução a programação para plataforma iOS
Introdução a programação para plataforma iOS
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento Mobile
 
Apresentação dev ios
Apresentação dev iosApresentação dev ios
Apresentação dev ios
 
Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!
 
Ionic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APPIonic Framework - Configuração do ambiente e a criação da primeira APP
Ionic Framework - Configuração do ambiente e a criação da primeira APP
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Aptoide
AptoideAptoide
Aptoide
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
 
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
 
Asoso tipos de aplicações móveis (1)
Asoso   tipos de aplicações móveis (1)Asoso   tipos de aplicações móveis (1)
Asoso tipos de aplicações móveis (1)
 
Asoso tipos de aplicações móveis (1)
Asoso   tipos de aplicações móveis (1)Asoso   tipos de aplicações móveis (1)
Asoso tipos de aplicações móveis (1)
 
Introdução intel XDK
Introdução intel XDKIntrodução intel XDK
Introdução intel XDK
 
Restaurante
RestauranteRestaurante
Restaurante
 
GSOIII - INTRODUÇÃO AO ANDROID
GSOIII - INTRODUÇÃO AO ANDROIDGSOIII - INTRODUÇÃO AO ANDROID
GSOIII - INTRODUÇÃO AO ANDROID
 
Adobe Phonegap
Adobe PhonegapAdobe Phonegap
Adobe Phonegap
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
 

Mais de Erisvaldo Junior

Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection frameworkErisvaldo Junior
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java meErisvaldo Junior
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java meErisvaldo Junior
 

Mais de Erisvaldo Junior (20)

A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java me
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java me
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 

Desenvolvendo para iOS em linux

  • 1. Erisvaldo Gadelha Saraiva Júnior Desenvolvendo para iOS em Linux E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: http://twitter.com/erisvaldojunior
  • 2. Sobre o palestrante Analista de Sistemas da Cehap (Companhia Estadual de Habitação Popular); Desenvolvedor Mobile e participante do projeto Ginga pelo Lavid (Laboratório de Tecnologias para o Ensino Virtual e Estatística), situado na Universidade Federal da Paraíba; Empreendedor da Yupi Studios (http://yupistudios.com), startup voltada para a criação de conteúdo criativo para dispositivos móveis; Bacharel em Ciência da Computação pela Universidade Federal da Paraíba e Tecnólogo em Sistemas para Internet pelo Instituto Federal de Educação, Ciência e Tecnologia.
  • 3. Sobre a Yupi Studios www.yupistudios.com
  • 6. Objetivo Desenvolver aplicações para a plataforma iOS 3 (iPod Touch, iPhone 2G, iPhone 3G, iPhone 3GS e iPad) em Linux, através de Organize with Sections compilação cruzada com o Toolchain para iPhone. Não é necessário ter um Mac OS X e utilizar a IDE Xcode para desenvolver para iPhone. Graças ao Toolchain para iPhone, é possível desenvolver para iOS em qualquer distribuição Linux.
  • 7. O que é o iOS? Sistema operacional desenvolvido pela Apple para dispositivos móveis (iPhone, iPad e iPod Touch). O iOS atualmente se encontra na versão 4.x e é baseado no Mac OS X; O kit de desenvolvimento para iOS (o iOS SDK) está disponível apenas para Mac OS X. A linguagem de Introdução programação utilizada no desenvolvimento para iOS é o Objective-C e a IDE, o XCode. Além disso, para testar suas aplicações no aparelho, é necessário possuir a licença do iOS Developer Program, ao custo de 99 dólares anuais. Distribuição de aplicações única e exclusivamente através da Apple App Store.
  • 8. Desenvolvendo para iOS em Mac OS X XCode IDE, Interface Builder e iPhone Simulator Introdução
  • 9. Apple App Store Loja de aplicativos para iOS gerenciada pela Apple e disponível através dos próprios aparelhos. Em julho de 2008 foi lançada a Apple App Store, na qual o desenvolvedor paga uma anuidade 99 dólares, define o preço final de suas aplicações e recebe 70% do lucro total; Motivação A loja vem sendo um sucesso absoluto. Disponível em 77 países, com mais de 75 mil aplicações e 1,5 bilhão de downloads realizados, números que crescem a cada dia; A Apple App Store definiu uma nova era no mercado Mobile, com vários fabricantes (e agora operadoras) lançando suas próprias lojas de aplicativos nos meses seguintes.
  • 10. Motivação Segundo a AdMob, a Apple App Store movimenta incríveis 200 milhões de dólares por mês, somando um total de 2,4 bilhões por ano. Organize with Sections Trism, um jogo casual que foi lançado no início da Apple App Store (similar ao Bejeweled), rendeu ao seu desenvolvedor, Steve Demeter, U$ 250.000,00 em apenas dois meses.
  • 11. Motivação A Apple App Store possui o maior mercado de aplicações pagas e gratuitas entre todas as lojas de aplicativos mobile. Organize with Sections
  • 12. Motivação A média de downloads da Apple App Store é superior a do Android Market, bem como a porcentagem de usuários que compram aplicações. Organize with Sections
  • 13. Etapas do Desenvolvimento Configurar o Escrever o Testar no ambiente código aparelho Desenvolvendo para iOS em Linux
  • 14. Configurar o Ambiente Atualização do Firmware do aparelho; Jailbreak do aparelho; Download do iOS SDK; Instalação do Toolchain.
  • 15. Atualização do Firmware do iPhone Instalar o iTunes (Mac OS / Windows) http://www.apple.com/br/itunes/download/ Baixar o Firmware 3.1.3 do iPhone http://limitededitioniphone.com/where-can-i-get-an-old- iphone-firmware/ Atualizar o Firmware utilizando o iTunes. Em caso de problema, utilizar uma versão anterior do iTunes (como a versão 7.2, por exemplo).
  • 16. Jailbreak do iPhone Instalar o redsn0w (Mac OS / Windows) http://www.redsnow.com Realizar o Jailbreak do iPhone http://www.connectionworld.org/como-desbloquear-o-iphone- com-firmware-3-0/
  • 17. Download do iPhone SDK Baixar o iPhone SDK 3.1.3 http://iphonesdkdev.blogspot.com/2010/04/old-versions-of- iphone-sdk.html Link Direto http://developer.apple.com/ios/download.action?path=/iphone/ip hone_sdk_3.1.3__final/iphone_sdk_3.1.3_with_xcode_3.2.1__sno w_leopard__10m2003a.dmg
  • 18. O que é o Toolchain para iPhone? À grosso modo, o Open Toolchain para iPhone é um conjunto de ferramentas que permitem a realização de compilação cruzada para Instalação do Toolchain iPhone, ou seja, gerar código para a arquitetura ARM a partir da 80x86, permitindo assim a criação de um executável para iOS. Site do projeto “iphonedevonlinux” http://code.google.com/p/iphonedevonlinux/ Instruções de instalação http://code.google.com/p/iphonedevonlinux/wiki/Installation
  • 19. Após instalado… Será criada uma pasta toolchain/ com a subpasta apps/, onde ficarão as pastas referentes aos projetos criados. Instalação do Toolchain O Toolchain já possui um projeto de exemplo chamado HelloToolchain, que se encontra em apps/HelloToolchain. O código-fonte da aplicação fica na subpasta src/ e um makefile é colocado na raiz da aplicação. Também é criada uma pasta img/, na qual devem ser colocados o ícone da aplicação, imagem default (que será utilizada na Splash Screen) e demais imagens utilizadas pela aplicação.
  • 20. Escrever o Código “Hello World” em iOS
  • 21. Sobre a linguagem Objective-C É uma linguagem de programação reflexiva, orientada a objetos, que suporta transmissão de mensagens no estilo SmallTalk para a linguagem C; Utilizada principalmente no Mac OS X. É a principal linguagem utilizada no Cocoa (uma das cinco maiores APIs disponíveis para o Mac OS X e a API disponível para o iOS); Programas genéricos em Objective-C que não façam uso de bibliotecas de terceiros também podem ser compilados por qualquer sistema suportado pelo gcc, que inclui um compilador Objective-C.
  • 22. Tutoriais de Objective-C Introdução rápida e objetiva do Objective-C: http://www.cs.indiana.edu/classes/c304/ObjC.html Tutorial simples, orientado ao utilizador: http://www.otierney.net/objective-c.html Tutorial “Objective-Oriented Programming and The Objective-C Language”. Disponível em: http://objc.toodarkpark.net/
  • 23. Que IDE utilizar? Pode-se utilizar qualquer IDE para o desenvolvimento, uma vez que não será utilizada nenhum tipo de ferramenta visual (no Escrevendo o Código caso do desenvolvimento em Mac existe um Construtor de Interface). Recomenda-se o KDevelop ou qualquer outra IDE que tenha suporte a linguagem Objective-C. Site do projeto KDevelop http://www.kdevelop.org/
  • 24. O código do Hello World que vem com o Open Toolchain para iPhone é composto por dois arquivos: HelloToolchain.h e HelloToolchain.m. Hello Toolchain! A applicationDidFinishLaunching() função é chamada assim que a aplicação é iniciada e deve ser implementada de forma a exibir as informações desejadas na tela do aparelho.
  • 25. Em que consiste o HelloToolchain.h? Da mesma forma que no C/C++, o Objective-C possui arquivos de cabeçalho (headers). O header contém, entre as annotations @interface e @end, as variáveis e funções que serão implementadas pelo arquivo de código, de extensão .m. HelloToolchain.h As bibliotecas são importadas no mesmo estilo de C, trocando-se #include por #import.
  • 26. Em que consiste o HelloToolchain.m? O .m contém, além do main(), entre as annotations @implementation e @end, a implementação das funções declaradas no arquivo de cabeçalho. HelloToolchain.m No main(), aloca-se uma instância de NSAutoReleasePool, uma fila de objetos que serão automaticamente desalocados pelo sistema. Logo após, chama-se o UIApplicationMain passando como parâmetros os argumentos de inicialização do main() bem como o título da aplicação. Em applicationDidFinishLaunching(), prepara-se a janela da aplicação, na qual serão adicionadas as views (componentes de interface) da aplicação, como textos, botões, etc. Por fim, torna-se a janela visível.
  • 28. Criando interfaces no iPhone com o UIKit Porção do UIKit
  • 29. Criando interfaces no iPhone com o UIKit Visão geral do UIKit
  • 30. Testar no aparelho Como testar sua aplicação no aparelho, usando o Toolchain
  • 31. Como testar a aplicação no aparelho? Uma vez produzido o código da aplicação, deve-se executar o make preparado pelo Toolchain na pasta raiz. Eventualmente serão necessárias mudanças no makefile, para compilar novos arquivos de código, por exemplo. Testar no iPhone O make deve ser executado após definir-se duas variáveis: IP do iPhone (que deve estar na mesma rede que o PC) e PATH dos binários do toolchain. Além disso, deve acompanhar o parâmetro deploy para que a aplicação seja enviada para o iPhone via SSH (usando Wi-fi). Durante o deploy, pedir-se-á a senha para acessar o iPhone via SSH. Por padrão, a senha é alpine.
  • 32. Trocando em miúdos… Na raiz da pasta da aplicação (ex: toolchain/apps/HelloToolchain/), executa-se: Para apenas compilar a aplicação: Testar no iPhone sudo PATH=PATH_DO_TOOLCHAIN/pre/bin:$PATH make Para compilar e enviar a aplicação para o iPhone: sudo IP=IP_DO_IPHONE PATH=PATH_DO_TOOLCHAIN/pre/bin:$PATH make deploy