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
670
困ったときが学びどき.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
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
210
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
140
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
440
AIの中の人になってみる
htkym
0
170
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
770
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
120
ソフトウェアラスタライザ
fadis
1
800
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
260
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
320
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
130
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
170
Family mrubyの進捗
kishima
1
110
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
460
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Optimizing for Happiness
mojombo
378
71k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
From π to Pie charts
rasagy
0
360
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
710
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