Submit Search
Upload
JavaScriptCore para iOS e OS X
•
0 likes
•
573 views
AI-enhanced title
André Espeiorin
Follow
Palestra sobre o framework JavaScriptCore apresentada no FloripaJS Meetup em Joinville
Read less
Read more
Mobile
Report
Share
Report
Share
1 of 18
Download now
Download to read offline
Recommended
Mobile, por onde e como começar
Mobile, por onde e como começar
André Espeiorin
Iniciando o desenvolvimento em iOS
Iniciando o desenvolvimento em iOS
Marcus Paulo
Iniciando desenvolvimento i os
Iniciando desenvolvimento i os
Luyz Garcia
Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)
Jorge Cardoso
iOS: evolução e mercado
iOS: evolução e mercado
Erick Jung
BRAPPS: Segurança no iPhone/iOS - Pedro Franceschi [Pagar.me]
BRAPPS: Segurança no iPhone/iOS - Pedro Franceschi [Pagar.me]
Brapps Brasil
Desenvolvimento de aplicativos Universais para iOS
Desenvolvimento de aplicativos Universais para iOS
André Espeiorin
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
André Espeiorin
Recommended
Mobile, por onde e como começar
Mobile, por onde e como começar
André Espeiorin
Iniciando o desenvolvimento em iOS
Iniciando o desenvolvimento em iOS
Marcus Paulo
Iniciando desenvolvimento i os
Iniciando desenvolvimento i os
Luyz Garcia
Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)
Jorge Cardoso
iOS: evolução e mercado
iOS: evolução e mercado
Erick Jung
BRAPPS: Segurança no iPhone/iOS - Pedro Franceschi [Pagar.me]
BRAPPS: Segurança no iPhone/iOS - Pedro Franceschi [Pagar.me]
Brapps Brasil
Desenvolvimento de aplicativos Universais para iOS
Desenvolvimento de aplicativos Universais para iOS
André Espeiorin
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
Desenvolvimento de Jogos com Cocos2d - Apresentação Coderockr Jam
André Espeiorin
Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis
Italo Andrade
Arquitetura dos dispositivos móveis
Arquitetura dos dispositivos móveis
Alexsander Fontes
Sistema Operacional Móvel iOS
Sistema Operacional Móvel iOS
Dj Black
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
Paola Yitzel Sanchez
Tecnologias da Informacao e seu Impacto na Sociedade
Tecnologias da Informacao e seu Impacto na Sociedade
Adriana de Oliveira
SISTEMA OPERATIVO iOS
SISTEMA OPERATIVO iOS
Leilany Garcia
Sistema Operacional iOS
Sistema Operacional iOS
Daiana de Ávila
IOS sistema operacional
IOS sistema operacional
Hamburg Süd
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
TenshiDam
Sistema Operacional Android
Sistema Operacional Android
Guiherme Alarcão
Trabalho de informatica - Sistema Operacional iOS
Trabalho de informatica - Sistema Operacional iOS
nadilei
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
IOS API
IOS API
Jorge Eduardo Rodrigues
Introducao ao Desenvolvimento iOS
Introducao ao Desenvolvimento iOS
Diogo Costa
TDC 2008 JBoss Seam
TDC 2008 JBoss Seam
Dr. Spock
Phonegap - self RJ
Phonegap - self RJ
javamanrj
Jboss Seam
Jboss Seam
raquelcarsi
Html5
Html5
SouWebPel Grupo
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
Rafael Ponte
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
cejug
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
Dr. Spock
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
Suissa
More Related Content
Viewers also liked
Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis
Italo Andrade
Arquitetura dos dispositivos móveis
Arquitetura dos dispositivos móveis
Alexsander Fontes
Sistema Operacional Móvel iOS
Sistema Operacional Móvel iOS
Dj Black
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
Paola Yitzel Sanchez
Tecnologias da Informacao e seu Impacto na Sociedade
Tecnologias da Informacao e seu Impacto na Sociedade
Adriana de Oliveira
SISTEMA OPERATIVO iOS
SISTEMA OPERATIVO iOS
Leilany Garcia
Sistema Operacional iOS
Sistema Operacional iOS
Daiana de Ávila
IOS sistema operacional
IOS sistema operacional
Hamburg Süd
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
TenshiDam
Sistema Operacional Android
Sistema Operacional Android
Guiherme Alarcão
Trabalho de informatica - Sistema Operacional iOS
Trabalho de informatica - Sistema Operacional iOS
nadilei
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
Viewers also liked
(12)
Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis
Arquitetura dos dispositivos móveis
Arquitetura dos dispositivos móveis
Sistema Operacional Móvel iOS
Sistema Operacional Móvel iOS
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
Tecnologias da Informacao e seu Impacto na Sociedade
Tecnologias da Informacao e seu Impacto na Sociedade
SISTEMA OPERATIVO iOS
SISTEMA OPERATIVO iOS
Sistema Operacional iOS
Sistema Operacional iOS
IOS sistema operacional
IOS sistema operacional
SISTEMA OPERATIVO IOS
SISTEMA OPERATIVO IOS
Sistema Operacional Android
Sistema Operacional Android
Trabalho de informatica - Sistema Operacional iOS
Trabalho de informatica - Sistema Operacional iOS
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
Similar to JavaScriptCore para iOS e OS X
IOS API
IOS API
Jorge Eduardo Rodrigues
Introducao ao Desenvolvimento iOS
Introducao ao Desenvolvimento iOS
Diogo Costa
TDC 2008 JBoss Seam
TDC 2008 JBoss Seam
Dr. Spock
Phonegap - self RJ
Phonegap - self RJ
javamanrj
Jboss Seam
Jboss Seam
raquelcarsi
Html5
Html5
SouWebPel Grupo
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
Rafael Ponte
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
cejug
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
Dr. Spock
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
Suissa
Meteor - TechParty 2015
Meteor - TechParty 2015
Rodrigo Krummenauer do Nascimento
JBoss TRE - Aula1
JBoss TRE - Aula1
Saulo Arruda
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
Thiago Soares
Curso jsf
Curso jsf
Miguel Vilaca
TDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhere
tdc-globalcode
Front7 React Native
Front7 React Native
Newton Angelini
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
Rodrigo Urubatan
Caelum Day In Rio
Caelum Day In Rio
Daniel Passos
Introdução ao java fx e visage
Introdução ao java fx e visage
jesuinoPower
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
Dr. Spock
Similar to JavaScriptCore para iOS e OS X
(20)
IOS API
IOS API
Introducao ao Desenvolvimento iOS
Introducao ao Desenvolvimento iOS
TDC 2008 JBoss Seam
TDC 2008 JBoss Seam
Phonegap - self RJ
Phonegap - self RJ
Jboss Seam
Jboss Seam
Html5
Html5
JavaServer Faces - Desenvolvendo aplicações web com produtividade
JavaServer Faces - Desenvolvendo aplicações web com produtividade
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
Novidades do JSF: Um tour completo no JSF 2.2
Novidades do JSF: Um tour completo no JSF 2.2
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
Meteor - TechParty 2015
Meteor - TechParty 2015
JBoss TRE - Aula1
JBoss TRE - Aula1
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
Curso jsf
Curso jsf
TDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhere
Front7 React Native
Front7 React Native
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
Caelum Day In Rio
Caelum Day In Rio
Introdução ao java fx e visage
Introdução ao java fx e visage
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
TDC2012: Usando os recursos de extensibilidade da API de CDI do Java EE 6
JavaScriptCore para iOS e OS X
1.
JavaScriptCore André Gustavo Espeiorin
2.
/me • Developer desde
2006 • iOS Developer desde 2010 • Desenvolvimento Nativo • Desenvolvedor independente • http://about.me/espeiorin
3.
Singapore Airlines iOS App
4.
Por que? • Nem
tudo precisa ser nativo • JavaScript #1 • Acelerar o desenvolvimento • Flexibilidade
5.
JavaScriptCore • WebKit Framework •
iOS 7+ / OS X Mavericks • http://opensource.apple.com/source/ JavaScriptCore
6.
JavaScriptCore • Acessar contexto
JS dentro da WebView • Executar JS a partir de código nativo • Executar código nativo a partir do JS • Capturar exceções JS
7.
JSContext • Ambiente JS •
Análogo ao objeto window
8.
JSContext JSContext *context =
[[JSContext alloc] init]; [context evaluateScript:@"var a = 5”]; [context evaluateScript:@"var b = 4"]; [context evaluateScript:@"var sum = function(valueA, valueB) { return valueA + valueB }"]; JSValue *tripleNum = [context evaluateScript:@"sum(a, b)"];
9.
Exceptions // debug [context setExceptionHandler:^(JSContext
*context, JSValue *value) { NSLog(@"JS Exception %@", value); }];
10.
JSValue • Variáveis JS •
Funções JS • Possui uma referência para o JSContext
11.
JSValue Foundation JavaScript nil undefined NSNull
null NSNumber number, boolean NSDictionary Object object NSArray Array object NSDate Date object NSBlock Function object id Wraper object Class Constructor object
12.
JSValue JSValue *tripleNum =
[context evaluateScript:@"sum(a, b)”]; // Converte Valor Numérico NSLog(@"SUM %@", [tripleNum toNumber]); // Converte para string self.title = [[context evaluateScript:@"document.title"] toString]; // Invoca função vinda do JS JSValue *sumFunction = context[@"sum"]; JSValue *result = [sumFunction callWithArguments:@[@5, @4]]; NSLog(@"SUM %d", [result toInt32]);
13.
JSExport • Protocol deve
ser extendido • Conversão de objetos JS <> Objective-C
14.
JSExport @import JavaScriptCore; @protocol Contact
<JSExport> @property (nonatomic, strong) NSString *name; @property (nonatomic, strong) NSString *company; @property (nonatomic, strong) NSString *phone; + (instancetype) contactWithName:(NSString *)name company:(NSString *)company phone:(NSString *)phone; @end
15.
Injeção de Valores Objective-C context[@"contactManager"]
= self.contactManager; context[@"Contact"] = [DefaultContact class]; JavaScript var contact = Contact.contactWithNameCompanyPhone(name, company, phone); if (!contactManager.addContact(contact)) { alert('Erro ao inserir contato, verifique os dados inseridos.'); return false; }
16.
Exemplo https://github.com/espeiorin/JavaScriptCore
17.
Perguntas?
18.
Obrigado
Download now