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
iOSで妄想トーク(チャットUI)を再現してみた
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
560
HTTPステータスコードが意図した値にならないとき Let's Go Talk #2
yuyaabo
1
570
OSS貢献を気軽にしたい Let's Go Talk #1
yuyaabo
2
660
困ったときが学びどき.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
3k
Other Decks in Programming
See All in Programming
プロポーザルを書いてもらう
pvcresin
0
510
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
230
Flow は今どうなっているか
mizdra
PRO
0
530
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
290
仕様駆動開発の消費期限
watany
20
8.3k
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.8k
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
180
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
140
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
210
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
490
源内ハンズオン概要編
hideg
0
180
Cloudflare is Agents
chimame
0
170
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The SEO identity crisis: Don't let AI make you average
varn
0
530
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
460
Why Our Code Smells
bkeepers
PRO
340
58k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
A designer walks into a library…
pauljervisheath
211
24k
4 Signs Your Business is Dying
shpigford
187
23k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
280
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