Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iMessage Apps
Search
Fabricio Serralvo
December 06, 2017
Programming
0
150
iMessage Apps
Fabricio Serralvo
December 06, 2017
Tweet
Share
More Decks by Fabricio Serralvo
See All by Fabricio Serralvo
Um Pouco Sobre Property Wrappers
serralvo
2
180
Produtividade e Xcode Template
serralvo
0
150
Notificações no iOS 10
serralvo
0
100
Mini-curso de Git
serralvo
0
87
Other Decks in Programming
See All in Programming
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
390
Scale out your Claude Code ~自社専用Agentで10xする開発プロセス~
yukukotani
9
2.6k
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
Updates on MLS on Ruby (and maybe more)
sylph01
1
120
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
1k
Jakarta EE Core Profile and Helidon - Speed, Simplicity, and AI Integration
ivargrimstad
0
220
Rancher と Terraform
fufuhu
1
120
オープンセミナー2025@広島LT技術ブログを続けるには
satoshi256kbyte
0
140
コンテキストエンジニアリング Cursor編
kinopeee
1
720
TanStack DB ~状態管理の新しい考え方~
bmthd
2
350
AI OCR API on Lambdaを Datadogで可視化してみた
nealle
0
210
UbieのAIパートナーを支えるコンテキストエンジニアリング実践
syucream
2
750
Featured
See All Featured
Building an army of robots
kneath
306
46k
Bash Introduction
62gerente
614
210k
Six Lessons from altMBA
skipperchong
28
4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Unsuck your backbone
ammeep
671
58k
GraphQLとの向き合い方2022年版
quramy
49
14k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
The Cost Of JavaScript in 2023
addyosmani
53
8.8k
Rails Girls Zürich Keynote
gr2m
95
14k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Transcript
IMESSAGE APPS COCOAHEADS CAMPINAS
OLÁ, SOU O FABRÍCIO github.com/serralvo !
" DEV iOS @ ELDORADO
UM PAPO SOBRE APPS PARA IMESSAGE
UM POUCO SOBRE
STICKERS
APPS
APIs
UM POUCO SOBRE
SURGIU NO iOS 5
ONDE FUNCIONA?
⌚ EM TODO O ECOSSISTEMA
iOS 10 TROUXE A NOVIDADE
E EM VERSÕES ANTERIORES?
FALLBACK
E EM DEVICES SEM O APP?
APP STORE EXCLUSIVA
None
None
STICKERS
"FUN WAY TO COMMUNICATE"
ADICIONAR EM UMA MENSAGEM
IDEAL PARA ENGAJAMENTO
None
ANIMADOS OU ESTÁTICOS
E COMO FAÇO TUDO ISSO?
DOIS JEITOS PARA FAZER
TEM O JEITO FÁCIL
E TEM O JEITO MUITO FÁCIL
None
None
None
None
None
None
None
APPS
ALGUMAS CONSIDERAÇÕES
0 NÃO TEMOS ACESSO AS MENSAGENS
⚠ STANDALONE
App Extension nope iMessage App
DICA PARA QUEM QUER COMEÇAR
None
API
MESSAGES FRAMEWORK É DELE QUE VAMOS FALAR
MSMESSAGE
INTERFACE GRÁFICA
MSMESSAGETEMPLATELAYOUT
None
let layout = MSMessageTemplateLayout() layout.image = UIImage(named: "coverImage") layout.caption =
"Message In A Bottle" let message = MSMessage() message.layout = layout
None
E O ENVIO DE INFORMAÇÕES?
var components = URLComponents() components.queryItems = [ URLQueryItem(name: "songID", value:
“92381”), URLQueryItem(name: "name", value: “Message In A Bottle") ] let message = MSMessage() message.url = components.url
MSCONVERSATION
guard let conversation = activeConversation else { fatalError("Whooops, expected a
conversation") } // iOS 10 API conversation.insert(message) { error in if let e = error { print(e) } } // iOS 11 API conversation.send(message) { error in if let e = error { print(e) } }
MSSESSION
guard let conversation = activeConversation else { fatalError("Whooops, expected a
conversation") } let session = conversation.selectedMessage?.session ?? MSSession() let message = MSMessage(session: session)
MSMESSAGESAPPVC
None
// Changing presentation style requestPresentationStyle(.expanded) // Messages Handling override func
didSelect(_ message: MSMessage, conversation: MSConversation) { print("Items: \(message.url?.query ?? “Nope")") }
MSSTICKERBROWSERVC
// MSStickerBrowserViewDataSource override func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int {
return 5 } override func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView, stickerAt index: Int) -> MSSticker { // ... }
RECAPITULANDO
VIEWCONTROLLER
VIEWCONTROLLER CONVERSATION
VIEWCONTROLLER CONVERSATION MESSAGE B A
VIEWCONTROLLER CONVERSATION MESSAGE SESSION A&B
4 REFERÊNCIAS
DÚVIDAS?!
OBRIGADO!