Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
iOSで妄想トーク(チャットUI)を再現してみた
Search
aboy
September 08, 2017
Programming
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
iOSで妄想トーク(チャットUI)を再現してみた
社内で開かれたLTイベントの発表資料
aboy
September 08, 2017
More Decks by aboy
See All by aboy
生成AIで日々のエラー調査を進めたい
yuyaabo
0
1.1k
みんなでエラー監視するSRE夕会の効果_ゆるSRE勉強会1
yuyaabo
1
740
Go 1.19.1 security fix net/url JoinPath
yuyaabo
1
570
HTTPステータスコードが意図した値にならないとき Let's Go Talk #2
yuyaabo
1
580
OSS貢献を気軽にしたい Let's Go Talk #1
yuyaabo
2
680
困ったときが学びどき.pdf
yuyaabo
0
660
Build dynamic iOS apps with the Create ML framework の要約
yuyaabo
0
1.3k
fastlaneベースでTravis CIからBitriseに移行しました
yuyaabo
0
1.9k
Mixpanelのすゝめ
yuyaabo
0
3.1k
Other Decks in Programming
See All in Programming
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
390
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
Are APIs Still Relevant in the AI Era?
soyuka
0
430
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
710
パーソナライズPodcastを作った話
repunit11
0
120
AWSに止められる覚悟してますか?
morizo_1984
2
520
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.9k
Java 27新機能 / Java 27 new features
kishida
2
200
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
140
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
140
Agents on Rails - Rails at Scale 2026
irinanazarova
0
340
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
250
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Speed Design
sergeychernyshev
33
2.1k
Making Projects Easy
brettharned
120
6.8k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
460
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Six Lessons from altMBA
skipperchong
29
4.5k
Code Reviewing Like a Champion
maltzj
529
40k
How to make the Groovebox
asonas
2
2.5k
Being A Developer After 40
akosma
91
590k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
550
Transcript
iOSͰໝτʔΫΛͭ͘Δ aboy
aboyͰ͢ ‣ ͋΅Ͱ͢ ‣ ৽ଔೖࣾ3Ͱ͢ ‣ ·ͩITΠϊϕʔγϣϯ3෦Ͱ͢ ‣ 4݄͝Ζ͔ΒiOS։ൃʹܞΘͬͯ·͢
ໝτʔΫΛͭ͘Γ͍ͨ
ໝτʔΫͱʁ ‣ instagramに #妄想トーク で投稿された(主に)乃木坂46 とチャットしているかのように見えるスクショ ‣ instagramに投稿されているものに限らず架空の誰かと チャットしている雰囲気をつくれるサービスがある ‣
Androidアプリ チャットノベル ‣ iOSアプリ Imaginary Chat ‣ Webサービス モジマル
͜͏͍͏ͷ
iOSͰໝτʔΫ(νϟοτUI)Λ ࠶ݱͯ͠Έͨ
όφφϚϯ
࣮ͷϙΠϯτ
iOSʹ͓͚Δςʔϒϧߏ UITableView UITableViewCell
UITableViewͷΈ var objects = [ Object(title: "タイトル0"), Object(title: "タイトル1"), Object(title:
"タイトル2"), .... ]
UITableViewͷΈ -tableViewΛ180ճస- var objects = [ Object(title: "タイトル0"), Object(title: "タイトル1"),
Object(title: "タイトル2"), .... ] tableView.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) ϥδΞϯͰࢦఆ
UITableViewͷΈ -cell180ճసͤ͞Δͱ- var objects = [ Object(title: "タイトル0"), Object(title: "タイトル1"),
Object(title: "タイトル2"), .... ] tableView.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) cell.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi))
UITableViewͷΈ -σʔλͷՃ- var objects = [ Object(title: "タイトル0"), Object(title: "タイトル1"),
Object(title: "タイトル2"), .... ] tableView.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) cell.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) // 新しいもの insert(Object(title: "new"), at: 0) // 古いもの insert(Object(title: "old"), at: objects.count)
͋ͱ... var objects = [ Object(title: "タイトル0"), Object(title: "タイトル1"), Object(title:
"タイトル2"), .... ] tableView.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) cell.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) // 新しいもの insert(Object(title: "new"), at: 0) // 古いもの insert(Object(title: "old"), at: objects.count) ・受信か送信かで左or右表示の切り替え ・受信なら相手のプロフィール画像を表示 ・テキストを入力して送信できるように ・送受信日付を表示 ・etc...
͋ͱ... var objects = [ Object(title: "タイトル0"), Object(title: "タイトル1"), Object(title:
"タイトル2"), .... ] tableView.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) cell.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi)) // 新しいもの insert(Object(title: "new"), at: 0) // 古いもの insert(Object(title: "old"), at: objects.count) ・受信か送信かで左or右表示の切り替え ・受信なら相手のプロフィール画像を表示 ・テキストを入力して送信できるように ・送受信日付を表示 ・etc...
ໝτʔΫྫ
όφφϚϯ
Ҫ
ࣣʢ೫ࡔ46ʣ
·ͱΊ ‣ ֎෦ϥΠϒϥϦͳ͠Ͱ؆୯ʹLINEΈ͍ͨͳ νϟοτUI͕ͭ͘ΕΔ ‣ ͬͯΔͷUIKit(ඪ४)͚ͩ ‣ ໝτʔΫΛͭͬͯ͘༡Δ ‣ Έͳ͞ΜiOS։ൃֶΜͰΈ·ͤΜ͔ʁ
ࢀߟ 1. Apple Developer Documentation: CGAffineTransform.init(rotationAngle:) https://developer.apple.com/documentation/coregraphics/cgaffinetransform/ 1455666-init 2. 武井壮
最強動物1位の室伏広治 - YouTube https://www.youtube.com/watch? v=7fIFsBUX0tw 3. 西野七瀬のメイクを真似したい!! https://matome.naver.jp/odai/ 2150238529392593401