Baixe o app para aproveitar ainda mais
Prévia do material em texto
Texto da disciplina: ............................................................................... 3 Desenvolvimento Nativo ....................................................................... 3 Introdução ................................................................................................... 3 Dispositivos Móveis ....................................................................................... 5 Características Cásicas .................................................................................. 5 Outras Características ................................................................................... 5 Categorias ................................................................................................... 6 Computador Móvel ....................................................................................... 6 Pda ............................................................................................................. 6 Telefones Celulares ...................................................................................... 7 Evolução Dos Telefones Celulares .................................................................. 7 Smartphone ................................................................................................. 7 Tablet ou Tablet Pc ...................................................................................... 8 Dispositivos De Vestir ................................................................................... 8 Componentes Básicos De Um Dispositivos De Vestir ....................................... 9 Introdução Ao Desenvolvimento Nativo ......................................................... 9 Mercado Móvel ........................................................................................... 10 O Desenvolvimento Móvel ........................................................................... 10 Estratégias Do Desenvolvimento Móvel ........................................................ 11 Estratégia De Desenvolvimento Móvel Nativo ............................................... 12 Comparando As Plataformas Mobile Nativas ................................................. 13 Assinatura De Desenvolvedor Por Loja Virtual .............................................. 14 Desenvolvimento Móvel: Web Mobile ........................................................... 15 Web Site x Mobile Site x Responsive Design Site .......................................... 15 Desenvolvimento Móvel: Híbrido ................................................................. 16 Diferenças Entre As Abordagens Do Desenvolvimento Móvel ......................... 16 Desenvolvimento Nativo Com Android ......................................................... 16 Sistema Operacional Android ....................................................................... 17 Tabela Histórico De Versões ........................................................................ 18 Distrubuições Da Versão Do Android ............................................................ 19 Arquitetura Do s.o. Android ......................................................................... 19 Android Studio – Sistema De Build (gradle) .................................................. 21 Android Studio – Configurações De Build Do Gradle ...................................... 21 Estrutura De Um Projeto Android ................................................................ 22 Aspectos De Design Na Plataforma Android.................................................. 22 Android Design ........................................................................................... 23 Princípios De Projeto De Design Para Android .............................................. 23 Material Design .......................................................................................... 24 Desenvolvimento Nativo Com Apple Ios ....................................................... 24 Arquitetura ................................................................................................ 26 Linguagem De Programação Objective-c ...................................................... 28 Linguagem De Programação Swift ............................................................... 28 Aspectos De Design Na Plataforma Ios ........................................................ 29 Desenvolvimento Nativo Com Microsoft Windows Phone ............................... 29 Aspectos De Design Na Plataforma Windows Mobile ..................................... 30 Bibliografia ................................................................................................. 31 Texto da disciplina: Desenvolvimento Nativo Introdução Os dispositivos móveis estão presentes em nosso cotidiano como um equipamento de uso pessoal. Constitui um ambiente computacional móvel composto por um sistema operacional e diversos aplicativos. Sua característica principal é a mobilidade, ou seja, permitir que seu usuário o utilize enquanto se desloca de um lugar para outro, podendo executar aplicações isoladas (off-line) bem como conectadas a internet (online) através de conectividade a uma rede sem fio. A Mobilidade ou aplicações móveis são aplicações que podem facilmente ser movidos fisicamente ou cujas capacidades podem ser executadas enquanto elas estão sendo movidos, em outras palavras “permite o acesso a informação disponível em qualquer lugar e a qualquer momento”. A venda de dispositivos móveis como smartphone e tablet já superam o volume de vendas dos pc’s. O acesso a internet através de um dispositivo móvel superou, desde o 2º semestre de 2013, o acesso realizado através dos pc’s. Esse mercado vem crescendo desde a década de 1990, quebrando paradigmas, ampliando as possibilidades de atuação do profissional no mercado permitindo que atue em empresas privadas ou públicas, como também como desenvolvedor independente através do empreendimento de aplicações móveis e sua disponibilização e venda em lojas virtuais especializadas. A demanda de desenvolvimento de aplicações móveis (apps) cresce. Dentre as principais plataformas do mercado destacam-se o Android da Google, o IOS da Apple e o Windows da Microsoft. Diversas são as soluções para o desenvolvimento de aplicações para essas plataformas, dentre elas pode-se destacar o desenvolvimento nativo, ou seja, o desenvolvimento de aplicações utilizando ferramentas específicas disponibilizadas por cada fornecedor (plataforma). A miniaturização dos dispositivos e a conectividade sem fio deu surgimento a computação móvel. A computação móvel busca explorar a conexão de dispositivos que se movimentam em um mundo físico cotidiano. A medida que os dispositivos se tornam menores, fica mais fácil incorporá-los em muitas partes do mundo físico. Dispositivos móveis são equipamentos com capacidade computacional de processamento e armazenamento que permite o acesso a internet via rede sem fio. Dentre suas principais características pode-se destacar a mobilidade, ou seja, a capacidade de se utilizar o equipamento acessando aplicativos e acessando a web enquanto você se movimenta. Uma forma de classificar os dispositivos móveis é por seu dimensionamento (características). Nessa categoria pode-se destacar os computadores móveis, computadores de mão e os dispositivos de vestir. Cada categoria possui um conjunto de características específicas e aplicações. Os computadores móveis se referem aos equipamentos com perfil similar ao PC (Personal Computer) porém com características de mobilidade. Nessa categoria encontramos os notebooks, ultrabooks e netbooks. Os computadores de mão corresponde a categoria de equipamentos com capacidade computacional e mobilidade porém comdimensões menores em relação aos computadores móveis. Aqui tem-se os celulares, smartphones e tablets. Os dispositivos de vestir são equipamentos com características semelhantes ao anterior porém são utilizados junto ao corpo, tais como óculos de realidade aumentada, relógios inteligentes (smart watch) e pulseiras inteligentes. Dispositivos móveis São equipamentos de tecnologia computacional que permite o acesso a informações pessoais e corporativas, independente do momento ou local no qual se encontra. É um conjunto de dispositivos que permitem ao usuário ter acesso a serviços independentes de sua localização. Características básicas Mobilidade Portátil Fonte de alimentação de energia própria Conectividade sem fio Capacidade computacional Processamento Armazenamento Outras características Diversidade de tamanho e resolução de tela; Capacidade de memória e processamento limitada; Baixo consumo de energia; Conectividade limitada; Curto tempo de inicialização; Armazenamento de dados local e/ou remoto. Categorias Classificação quando ao dimensionamento • Computadores móveis • Computadores de mão • Dispositivos de vestir Computador móvel São dispositivos portáteis com capacidade semelhante aos computadores pessoais (desktops). Laptops (notebooks, netbooks, ultrabooks) Computadores de mão PDA – Personal Digital Assistant; Telefones móveis (Smartphones, tablets, etc); Outros equipamentos de operação especializada PDA Personal Digital Assistant (Assistentes Digitais Pessoais). Computadores de propósito geral capazes de executar diversos tipos de aplicações. Podem ser compostos por acessórios como: • Câmeras; • Leitor de código de barras; • Outros tipos de acessórios específicos; Telefones Celulares Termo utilizado para os primeiros telefones que faziam uso da topologia de uma rede de telefonia móvel. Cada célula é o raio de ação de cada uma das estações base (antenas de emissão/recepção) do sistema. Evolução dos Telefones Celulares Os primeiros celulares eram rudimentares que permitiam apenas realizar ligações. Apresentavam antena externa e display simples para exibir apenas o número do telefone discado. Pode-se observar a evolução dos celulares com atenção especial ao display (tamanho, cores e resolução) e a antena. A medida que a tecnologia dos celulares evoluía juntamente com a miniaturização de componentes como mp3 players e câmeras. Smartphone É chamado de Telefone “inteligente”, ou seja, é um telefone celular com funcionalidades avançadas que podem ser estendidas por meio de programas executados por seu sistema operacional. Um smartphone pode ser considerado um telefone celular com as funcionalidades de um PDA. Tablet ou Tablet PC Dispositivo pessoal em formato de prancheta que pode ser usado para acesso à Internet, organização pessoal, visualização de fotos, vídeos, leitura de livros, jornais e revistas e para entretenimento com jogos. Esse tipo de dispositivo apresenta uma tela touchscreen (tela sensível ao toque) que é o dispositivo de entrada principal. É um Smartphone ? Não! É um tablet ? Não, é um phablet!!! Os dispositivos móveis foram evoluindo, agregando novas funcionalidades e aplicativos, e aumentando seu tamanho e resolução do display. O mercado então lançou dispositivos com medidas acima de 5 polegadas e inferiores a 7 polegadas. Para esses tipos de dispositivos o mercado denominou-os de “Phablets”, a união das palavras “Phone”+ “Tablet”. Essa tendência é tão forte que a Apple teve que se adequar a demanda do mercado e lançou os modelos do iPhone 6 e iPhone 6 plus. Dispositivos de vestir A tecnologia de vestir corresponde a dispositivos que são incorporado ao espaço pessoal de maneira que está sempre com o usuário sem, no entanto, limitar os seus movimentos ou impedir a sua mobilidade. Está sempre ligado e acessível, e com uma performance computacional que permite auxiliar o usuário em atividades motoras e/ou cognitivas. Componentes básicos de um Dispositivos de vestir Um dispositivo de input – entrada de dados, para controle das funções do sistema o que implica em alguma espécie de teclado, um processador responsável por este input, cujo tamanho dependerá das necessidades e características de processamento, Um dispositivo de output – saída de dados, preferivelmente um display visível constante em um dos olhos do wearer, uma fonte – baterias, para o processador e possivelmente também para os dispositivos de input e output. Dentre os dispositivos de vestir podemos destacar o óculos de Realidade Aumentada da Google Glass, o óculos de Realidade Mista da Microsoft Hololens, os Smartwatch e as pulseiras inteligentes. A tecnologia móvel e os dispositivos móveis fazem parte de nosso cotidiano. Possibilitam acesso a dados a qualquer hora e lugar. Comodidade e disponibilidade e a evolução tende a torná-los uma parte de nosso corpo. Introdução ao desenvolvimento nativo Aplicações móveis são aplicações que podem facilmente ser movidos fisicamente ou cujas capacidades podem ser executadas enquanto elas estão sendo movidos. Em outras palavras: informação disponível em qualquer lugar e a qualquer momento (Mobilidade). A grande demanda por dispositivos móveis traz proporcionalmente a demanda por aplicações para atender aos seus usuários. O processo de desenvolvimento de aplicações para dispositivos móveis evolui rapidamente com as tecnologias destes. Atualmente destacam-se 3 grandes sistemas operacionais para estes dispositivos: IOS (Apple), Android(Google) e Windows Phone (Microsoft). Cada uma oferece uma plataforma de software para o desenvolvimento de aplicações para dispositivos móveis. O desenvolvimento de aplicações para dispositivos móveis podem ser categorizados em 4 tipos: Nativos, web mobile, híbrido e multiplataforma. A estratégia de desenvolvimento depende de requisitos, em especial: complexidade da aplicação, desempenho e segurança. Essas plataformas possuem lojas virtuais onde aplicações podem ser disponibilizadas para comercialização: Apple Store (Apple), Google Play (Google) e Windows Phone Store (Microsoft). Mercado móvel O momento indica que estamos nos tornando uma sociedade pós-PC. Máquinas e serviços interagem de forma mais natural com os usuários; O desenvolvimento móvel Novo paradigma com oportunidades e desafios específicos, onde as melhores práticas do mundo desktop simplesmente não se aplicam. A criação de um novo ecossistema em constante mudança, um mercado em constante experimentação, não há padrões estabelecidos e os usuários de dispositivos móveis têm padrões de uso e métodos de navegação próprios. Caracteristicas: Crescente variedade de plataformas mobile, Diferentes modelos de hardware, Android é a plataforma mais fragmentada. Dispositivos de diversos Tamanho e resolução da tela, Dispositivos com limitação de memória e processamento, Conexão de rede imprevisível, cobertura limitada e baixa velocidade, Diversidade de Conectividade: Que formas a app irá se comunicar com meio externo para a troca de informações ? App devem consumir menos bateria possível; Estratégias do desenvolvimento móvel Classificação Nativo; Web Mobile; Híbrido. Fonte: http://wiki.developerforce.com/page/Native,_HTML5,_or_Hybrid:_Understandin g_Your_Mobile_Application_Development_Options A figura acima exibe a relaçãoentre as diversas abordagens de desenvolvimento e aspectos importantes como desempenho, acesso aos recursos do dispositivo, e a abrangência de plataformas mobile. A abordagem nativa permite desenvolver aplicação com excelente desempenho e acesso a todos os recursos do equipamento. No outro extremo temos a abordagem web mobile que requer acesso a internet, seu desempenho é inferior ao nativo e possui restrições quanto ao acesso a recursos do equipamento. Estratégia de desenvolvimento móvel nativo Refere-se a aplicações desenvolvidas usando linguagem de programação específica de uma plataforma. Desenvolvimento móvel: NATIVO Nessa abordagem utiliza-se o SDK disponibilizado pelo fabricante da plataforma alvo. Esse tipo de abordagem requer uma equipe especializada, e o produto final é uma app plataforma específica. Elementos como desempenho, usabilidade, experiência do usuário, segurança e acesso a todos os recursos do equipamento a distingue das demais abordagens. Características: • São rápidas, • Confiáveis, • Acesso a todos os recursos de hardware (câmera, acelerômetro, bússola, etc), • Restrita para a plataforma escolhida. Vantagens: • Desempenho; • Segurança; • Usabilidade; • Interfaces rica; • Armazenamento local ou remoto; • Execução de aplicações tanto offline como online; • Acesso completo aos recursos do dispositivo (câmera, -acelerômetro, bússula, etc); • Monetização; Desvantagens: alto custo de desenvolvimento e manutenção; Atualização não é transparente ao usuário; Processo de aprovação; Complexidade: Cada plataforma tem características específicas; Escassez de profissionais capacitados; Comparando as plataformas mobile nativas Cada plataforma possui itens específicos como linguagem de programação base, IDE oficial utilizada no desenvolvimento das aplicações, sua SDK, a extensão do produto final e a loja virtual para comercialização. Assinatura de desenvolvedor por loja virtual As aplicações desenvolvidas podem ser comercializadas nas lojas oficiais de cada plataforma, porém para isso deve-se pagar uma assinatura como desenvolvedor, conforme a tabela abaixo: Desenvolvimento móvel: web mobile Aplicações que utilizam padrões abertos e teoricamente podem ser executadas em qualquer dispositivo que possua browser. Possibilita uso de conhecimentos prévios das tecnologias web (html, xhtml, js e css) com novas técnicas para fazer a aplicação funcionar em dispositivos móveis; Mesmo código para todos os dispositivos; Web site x mobile site x responsive design site Responsive Web Design (RWD) é um conceito onde o objetivo é apresentar informação de forma acessível e confortável para diversos meios de acesso; A figura acima exibe as diferentes soluções utilizadas na abordagem web mobile. Pode-se apenas acessar um site web, o que não é indicado para solução mobile devido ao tamanho reduzido do display gerando dificuldade na leitura e navegação da página. Site mobile é uma solução de site web específica para exibição em dispositivos móveis. E por fim os sites responsivos são a melhor opção como solução web mobile pois temos uma única solução de se adequa ao tamanho do display do dispositivo, seja o display de um PC como de um smartphone. Desenvolvimento móvel: híbrido É uma aplicação nativa que encapsula tecnologias web. Faz uso de componente WebView existente no SDK das plataformas mobile. Isso é transparente para o usuário. Permite o desenvolvimento de aplicações stand-alone similar ao desenvolvimento nativo, porém faz uso de tecnologia web para construção de sua interface e comportamento. A interface do usuário nativa da plataforma e permite o acesso a componentes de hardware; Diferenças entre as abordagens do desenvolvimento móvel Desenvolvimento móvel: Qual abordagem utilizar? Não existe solução única e padronizada para todos os tipos de aplicações. Cada solução precisa de uma análise detalhada de todos os requisitos que devem ser implementados na aplicação. Foco no curto prazo, pois os conceitos estão em constante mudança; Geralmente aplicações web mobile são mais baratas para desenvolver e distribuir, mas não oferecem a mesma experiência de usuário que as aplicações nativas; Se acesso a recursos de hardware for requisito mandatório, acredito que a abordagem "híbrida", "multiplataforma" ou "nativa" seja mais adequada; Desenvolver uma aplicação para um dispositivo móvel requer conhecimento dos requisitos do que se deseja para a aplicação. Conhecer as abordagens, suas vantagens e desvantagens auxilia na tomada de decisão da abordagem que se adequa melhor a solução requerida. A Abordagem nativa é a abordagem padrão das principais plataformas móveis. Desenvolvimento nativo com android No mercado de dispositivos móveis a plataforma Android se destaca por alguns motivos: É a plataforma com maior número de usuários como também a que possui o maior número de aplicativos disponíveis em sua loja virtual (,2016). O S.O. Android possui várias versões, desde seu lançamento oficial em 2008, até os dias atuais. Cada versão do S.O. Android pode ser identificada através de seu codinome, ou pelo número de sua versão ou pelo número do nível da API. A partir da versão de número 1.2, toda versão do Android passou a ter como codinome o nome de uma sobremesa doce. As versões estão dispostas em ordem alfabética, Cup Cake, Dunot, Eclair, Froyo, etc. Uma versão contém um único codinome, porém pode conter diversas versões e níveis de API como por exemplo temos a Jelly Bean, com versões 4.1, 4.2, 4.3 e nível de API 16, 17 e 18 respectivamente. Na visão do desenvolvedor, a plataforma Android oferece como ferramentas o Android Studio como IDE oficial para o desenvolvimento de aplicações para Android, bem como sua SDK (Software Development Kit – kit de desenvolvimento de Software). Esse SDK é composto pela API do Android – conjunto de classes para apoiar o desenvolvimento de apps, e por ferramentas como um emulador para simular um ambiente virtual Android, o SDKManager – permite gerenciar as versões do SDK instalados na máquina do desenvolvedor, o AVD Manager – permite gerenciar perfis de ambientes virtuais executados pelo emulador. Existem outras ferrmentas além dessas que tem o objetivo de apoiar o desenvolvimento de apps Android. A arquitetura do Sistema Operacional (S.O.) Android é baseada em camadas, onde a camada mais externa contém as apps que o usuário poderá acessar. Na camada mais interna encontra-se o kernel que é responsável pela comunicação com o hardware do dispositivo Android. Sistema operacional android Sistema operacional para dispositivos móveis baseado em uma versão modificada do S.O. Linux. [ LEE, 2011] Kernel 2.6 do Linux (primeiras versões) Kernel 3.4 do Linux (versão atual) Ger. de memória, processos, threads, segurança de pastas e arquivos, redes e drivers. S.O. de código aberto, sob a licença Apache (Apache Software Foundation) de código aberto. Permite a personalização pelos fornecedores de dispositivos móveis. Permite que diversos programadores contribuam para melhoria da plataforma. Tabela histórico de versões As versões do Android possuem 3 formas de identificação: codinome, nível da api e número da versão. O codinome faz referencia a uma sobremesa doce americana, e seguem uma ordem alfabética. Distrubuições da versão do android A tabela de distribuição das versões do Android é muito importante para odesenvolvedor, uma vez que ao criar uma aplicação ele deve analisar o somatório do percentual de distribuição do grupo de versões e as funcionalidades que deseja disponibilizar na app. Quanto mais velha a versão mais restrições a funcionalidades. Arquitetura do s.o. android O Android apresenta uma arquitetura em camadas. Camada do topo da arquitetura é a camada mais externa onde se encontram os aplicativos do usuário. A Camada do fundo da arquitetura é a camada mais interna onde se encontram as instruções do Android para se comunicar com o aparelho (hardware). Camada externa: • Aplicativos (Applications) Camadas intermediárias • Estrutura de Aplicativos (Application Framework) • Bibliotecas (Libraries) + Runtime do Android (Android Runtime) Camada interna: • Kernel Linux Ferramentas padrão do android • IDE – Ambiente Integrado de Desenvolvimento • Android Studio • SDK (Standard Development Kit) Android • AVD Manager • SDK Manager • API do Android Android studio – sistema de build (gradle) O sistema de build Android consiste em um plugin do Android para Gradle. O Gradle é um kit de ferramentas de compilação avançado que gerencia dependências e permite que você definir a lógica de compilação personalizada. Android Studio utiliza o Gradle wrapper para integrar plenamente o plugin Android para Gradle. O plugin Android para Gradle executa independente do Android Studio. Pode-se construir aplicativos Android a partir da IDE Android Studio ou a partir da linha de comando; Pode ser realizado na máquina local ou em máquinas onde Android Studio não está instalado (como servidores de integração contínua). A saída da compilação é o mesmo se você está construindo um projeto a partir da linha de comando, em uma máquina remota, ou usando Android Studio. Android studio – configurações de build do gradle As configurações de Build de um projeto Android é definido no arquivo build.gradle. O arquivo build.gradle é um arquivo texto baseado na sintaxe e opções do Gradle. Estrutura de um projeto android Aspectos de design na plataforma android O desenvolvimento de aplicações móveis nativas requer a construção de interfaces intuitivas, com ênfase na usabilidade e experiência do usuário. A construção de uma boa interface gráfica contribui para o sucesso de um projeto móvel. O Android oferece um conjunto de componentes e recursos para permitir a construção de interfaces ricas. O Google disponibiliza em sua página um conjunto de princípios e boa práticas para a construção da interface gráfica do usuário para o Android, ou seja, um conjunto de recomendações chamadas de “Android Design” que trata de princípios básicos de design, materiais para design, dispositivos, estilos, padrões, dentre outros. O Android Design é um conjunto de diretrizes para auxiliar desenvolvedores a construir a UI (user interface). Os princípios de projeto para Android consiste de um detelhamento quanto ao projeto de UI para diferentes tipos de tipos de dispositivos Android. Android design Um conjunto de diretrizes de projeto proposto pela Google para auxiliar os desenvolvedores na construção da interface gráfica de aplicações para o Android. Princípios básicos de design: • Materiais para design, • Animações, • Estilos, • Padrões, • etc. Não é uma obrigação a ser cumprida pelo desenvolvedor, e sim um conjunto de recomendações a serem seguidas. O processo de aprovação de aplicações para a loja virtual Google Play não considera a avaliação da interface gráfica da aplicação. Princípios de projeto de design para android • Encante-me • Simplifique minha vida • Faça com que eu seja incrível Material design Foi disponibilizado a partir da versão Lollipop do Android. É um guia abrangente para design visual, de movimento e de interação para diversas plataformas e dispositivos. O Google disponibilizou um conjunto de orientações definidas nas especificações do Material Design para utilização de novos componentes e funcionalidades disponíveis a partir do Android 5.0 (API de nível 21). O Android fornece os seguintes elementos para criar aplicativos do Material Design: • Novo tema • Novos widgets para views complexas • Novas APIs para sombras e animações personalizadas. Android é a plataforma mais fragmentada do mercado, e para lidar com as diferenças entre os dispositivos e auxiliar na construção da UI, o Google criou um conjunto de diretrizes para apoiar desenvolvedores no projeto da UI. O Android disponibiliza um conjunto de componentes do tipo VIEW para construção da UI. O Material Design é um guia abrangente para design visual, de movimento e de interação para diversas plataformas e dispositivos. Desenvolvimento nativo com Apple ios A empresa Apple ocupa o 2º lugar na participação do mercado de dispositivos móveis quanto ao número de usuários. A Apple inovou o seguimento de dispositivos móveis ao lançar o 1º smartphone comercial: o iPhone, dispositivo com conceitos inovadores, bem como a primeira loja virtual para comercialização de aplicações (apps) iOS . O S.O. iOS possui várias versões, desde seu lançamento oficial em 2007, até os dias atuais. Lançada inicialmente para o iPhone e utilizado também para iPod Touch, iPad, Apple TV. Cada versão possui um nome e um número da versão. A versão inicial foi chamada de iPhone OS 1. A partir da versão 4 passou a ser chamada de iOS acompanhada do número da versão, ex: iOS4, iOS5. A versão atual é a iOS 9. Na visão do desenvolvedor, a plataforma iOS oferece um conjunto de ferramentas como o XCode como IDE oficial para o desenvolvimento de aplicações para o universo Apple, bem como sua SDK (Software Development Kit – kit de desenvolvimento de Software). Esse SDK é composto pela API do iOS – conjunto de classes para apoiar o desenvolvimento de apps. A arquitetura do Sistema Operacional (S.O.) iOS é baseada em 4 camadas, onde a camada mais externa contém as apps que o usuário poderá acessar bem com um conjunto de frameworks de apoio. Na camada mais interna encontra-se o CoreOS, que representa o kernel. É responsável pela comunicação com o hardware do dispositivo iOS. Características: • Derivado do S.O. Mac OS X • Anunciado na Macworld de 2007 (jan/2007) • Inicialmente chamado de OS X • Em 2008 renomeado para iPhone OS • Em 2010 renomeado para iOS Desenvolvido para o iPhone, porém utilizado pelo iPod Touch, iPad e Apple TV. Sistema Operacional desenvolvido para ser executado somente em dispositivos da Apple. Arquitetura Camada Cocoa Touch • Camada que implementa aplicações gráficas e baseadas em eventos. • Permite acesso a features do dispositivo. • Provê um conjunto de componentes (API) de alto nível para construção da UI das aplicações. • EventKitUI, MapKit, UIKit, PhotosUI, etc. Camada Media • Provê um conjunto de componentes (API) para construção de itens de multimidia em aplicações. • AvFoundation, AVKit, AudioToolBox, AudioUnit, CoreAudio, CoreAudioKit, etc. Camada Core Services • Provê acesso aos serviços fundamentais do iOS. • Permite obter acesso a arquivos, serviços Bonjour, sockets de rede, etc. • WebKit, MultiPeerConectivity, MobileCoreService, HomeKit, HealthKit, GameplayKit, etc. Camada Core OS • Gerencia o sistema de memória virtual, threads, o sistema de arquivos, a rede e os interprocessos de comunicação entre os componentes da camada. • Abrange o ambiente do kernel,drivers e a interface basica do iOS. • Os drivers provêem a interface entre o sistema e o hardware. • Accelerate, CoreBlueTooth, ExternalAccessorey, LocalAuthentication, NetworkExtension, Security, System. Ferramentas xCode • Ambiente de desenvolvimento de aplicações para MacOs e iOs. • Integrado com a camada CocoaTouch do iOS. SDK • Conjunto de ferramentas e classes (API) para o desenvolvimento de aplicações (apps) para o iOS. Linguagem de Programação Objective-C É uma linguagem Orientada a Objetos e Funcional. Foi a programação primária utilizada na codificação de aplicações para OS X e iOS. Influenciada pela linguagem C e Smaltalk. Possui características similares a linguagem C tais como: sintaxe , tipos primitivos e estruturas de controle de fluxo. Possui suporte ao gerenciamento de grafos e objetos literais provendo tipos dinâmicos e binding. Linguagem de Programação Swift Essa linguagem de programação foi Anunciada na WWDC 2014. É Open Source, permite a programação Orientada a Objetos e Funcional. É integrada a ferramenta Playground do xCode. Características da linguagem • Desempenho superior ao Objective-C. • Reduz a necessidade de arquivos em um projeto. • Facilidade de aprendizado em relação ao Objective-C. • Arquivos fonte escrito em Swift podem co-existir com arquivos escritos em Objective-C em um mesmo projeto. • Versões: 1.0, 2.0 e 3.0 (mais recente). A plataforma iOS possui alta participação no mercado, é conhecida como inovadora, possui hardware próprioe loja virtual comercialização de apps (Apple Store). Seu hardware e software são proprietários e o alto grau de controle de publicação. É um sistema altamente estável, fluido, seguro e confiável. Aspectos de design na plataforma ios A Apple atribui um grau de importância ao projeto da interface gráfica do usuário de tal forma que atua como um dos critérios de aprovação de apps para a Apple Store. Para apoiar isso ela elaborou um guia de design e de interface humana para dar suporte a desenvolvedores na elaboração da interface gráfica e no comportamento da app. O iOS Design é um conjunto de diretrizes para auxiliar desenvolvedores a construir a UI (user interface). Os princípios de projeto de UI para iOS consiste de um conjunto de elementos importantes para o projeto de UI para diferentes tipos de dispositivos móveis da Apple, tais como iPhone, iPad e iWatch. Desenvolvimento nativo com Microsoft windows phone No mercado de dispositivos móveis a empresa Microsoft aparece como uma das 3 maiores soluções desse segmento, juntamente com a Google e a Apple. Ela fornece a plataforma Microsoft Windows Phone para apoiar o desenvolvimento de aplicações para sua plataforma. A primeira versão que a Microsoft disponibilizou para o desenvolvimento de aplicações para o segmento de dispositivos móveis voltados para o seguimento de celulares foi o Windows Mobile, que seguiu até sua versão 6.5. Devido ao lançamento dos smartphones e tablets a empresa fez uma mudança muito grande e lançou um novo produto, o Windows Phone. Suas versões são identificadas por um códinome e um número de versão, porém nem todas posuem um codinome. Na visão do desenvolvedor, a plataforma Microsoft oferece como ferramentas o seu ambiente Visual Studio como IDE oficial para o desenvolvimento de aplicações para o Windows Phone, bem como sua SDK (Software Development Kit – kit de desenvolvimento de Software). A plataforma Windows Phone faz uso da plataforma .Net que permite a utilização das linguagens de programação C# (C sharp) e VisualBasic (VB) para o desenvolvimento de aplicações móveis. Uma funcionalidade nova do IDE Visual Studio é permitir o desenvolvimento de apps móveis na linguagem C# e exportá-la para a plataforma Android. A arquitetura do Sistema Operacional (S.O.) Windows Phone é baseada em camadas, onde a camada mais externa contém as apps que o usuário poderá acessar. Na camada mais interna encontra-se o kernel que é responsável pela comunicação com o hardware do dispositivo Windows Phone. Aspectos de design na plataforma windows mobile A Microsoft evoluiu sua versão do sistema operacional para dispositivos móveis ao longos dos anos. O Windows Phone foi a versão criara para atuar no segmento de smartphones e tablets. Recentemente ela lançou uma filosofia de desenvolvimento para UWP - Plataforma Universal do Windows. Isso permite ao desenvolvedore projetar e criar aplicativos para os diversos tipos de dispositivos suportados pelo Windows 10. O desenvolvimento da interface de aplicativos para Window Phone e para UWP é apoiada pela Microsoft através de um conjunto de recomendações de design. Diferentemente da Apple e similar a Google, a Microsoft não utiliza o design como critério de aprovação de aplicativos para vendas na sua loja virtual, porém isso não quer dizer que o design da interface do usuário não é importante. Ela possui um conjunto de diretrizes e guia de design que norteiam o desenvolvedor a criar a interface da aplicação segundo seus critérios de qualidade. Bibliografia LEAL, N. G. V., Dominando o Android: do básico ao avançado. 2. ed. São Paulo: Novatec, 2015. LECHETA, Ricardo R., Desenvolvendo para iPhone e iPad. 4ª edição. São Paulo: Novatec, 2016. LECHETA, Ricardo R., Desenvolvendo para Windows 8, Editora Novatec, 2013. DEITEL, Paul J.; DEITEL, Harvey M., Android 6 Para Programadores, 3a ed. Bookman, 2016. LECHETA, Ricardo R., Google Android para Tablets, 1ª edição, Editora Novatec, 2012. LECHETA, Ricardo R., Google Android, 5ª edição, Editora Novatec, 2015. OLIVEIRA, Claúdio, Desenvolvimento de Aplicativos para Windows Phone, ed. Ciencia Moderna, 2014. TAURION, CEZAR C., Desenvolvimento de apps – Parte 2: híbrido, nativo ou web?, 2013, acessível em: https://www.ibm.com/developerworks/community/blogs/ctaurion/ entry/desenvolvimento_de_apps-parte_2_hibrido_nativo_ou_web?lang=en
Compartilhar