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.3k
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
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
560
OSS貢献を気軽にしたい Let's Go Talk #1
yuyaabo
2
660
困ったときが学びどき.pdf
yuyaabo
0
650
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
霧の中の代数的エフェクト
funnyycat
1
140
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
230
Contextとはなにか
chiroruxx
1
390
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
170
act1-costs.pdf
sumedhbala
0
160
Agentic UI
manfredsteyer
PRO
0
220
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
7.2k
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
210
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
660
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Amusing Abliteration
ianozsvald
1
220
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Designing Powerful Visuals for Engaging Learning
tmiket
1
440
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
340
How to build a perfect <img>
jonoalderson
1
5.8k
Faster Mobile Websites
deanohume
310
32k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
610
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