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
コードでUI構築してみた
Search
tiking
October 02, 2020
Programming
0
83
コードでUI構築してみた
以前LTで登壇した内容です
tiking
October 02, 2020
Tweet
Share
More Decks by tiking
See All by tiking
デザインシステムっていいな
tiking76
0
160
GraphQL 入門
tiking76
0
1.1k
みんなTCAって 知ってる?ver2.0
tiking76
1
300
みんなTCAって知ってる?
tiking76
0
840
最近きてるかもって思ってるデザイン
tiking76
0
200
Swiftのちょっとうれしい構文
tiking76
0
56
p1assさんを作ろうと試みました
tiking76
0
100
PRのときに使われがちな略語のやつ
tiking76
0
88
swiftでもグラフ書いてみたくない??
tiking76
0
170
Other Decks in Programming
See All in Programming
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
110
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
880
try! Swift Tokyo 初参加報告LT
hinakko2
0
190
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
210
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
450
元気予報
suu_mire0726
0
850
Folding Cheat Sheet #3
philipschwarz
PRO
0
110
ONE WEDGE_company_guide
1wedge_one
0
370
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
300
Build with AI 2024 Seoul - 제로부터 시작하는 Flutter with Gemini 생활 - 박제창
itsmedreamwalker
0
200
Ruby Pattern Matching
bkuhlmann
0
920
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
24
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Building an army of robots
kneath
300
41k
GitHub's CSS Performance
jonrohan
1023
450k
How to train your dragon (web standard)
notwaldorf
72
5.1k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Code Reviewing Like a Champion
maltzj
513
39k
Into the Great Unknown - MozCon
thekraken
10
980
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
15
1.4k
Teambox: Starting and Learning
jrom
128
8.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
5
1.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Transcript
コードでUI構築してみた 2020/07/18 Zli × DMM合同
Readme name : 舘佳紀 colleage : 会津大学学部3年 さーくる : Zli所属です
Handlename : チキング 好きな言語 swift twitter @tikin0716 gitHub tiking76
背景 先日参加したハッカソンにて初めて体験して めっちゃええやんってなったので、個人でも やってみました。
あと… ・メルカリさんのこの記事をみて来てるぞ!!と思ったので… https://tech.mercari.com/entry/2019/12/13/155700 ・SwiftUIを用いてのXcode Previewによってデバックが手軽になったため。
今回やったこと storyboardやxibを使わずに、アプリを作った。
まずその前に… コードでUIを作るって実際どうなん?
メリット ・コードレビューがカンタン、差分がわかりやすい ・プルリクエスト、マージしようとしたときにコンフリクト(競合)が起きにくい ・パーツやUIViewControllerの再利用、継承がカンタン ・実装がコードに集約される(読みやすい)
storyboardのXML
デメリット ・iOSアプリ開発の入門はStoryboard前提のものが大半のため、学習コストがかかる ・レイアウトの確認に時間がかかる ・iOSエンジニア以外がレイアウトを確認したり、微調整するのに困難がある
どうやって作るん? ・コードでパーツを作っていきます。初回するコードの書き方→Initialization Closure ・自分の場合は、navigationControllerとか、rootViewの設定は、 SceneDelegate.swiftに書いてました ・layoutとかは、以下の画像のように実装していました。
SceneDeligateのコード
Layoutのコード Extention.swift
ラベルをつくりたい CustomInputAccessoryView.swif
ボタンをつくりたい CustomInputAccessoryView.swif, RegistrationController.swift
xibみたいなことしたい
None
letとlazyを使う時の注意 letでプロパティを定義した際には、viewDidloadで定義していないとselfが使えずエラー がでます。 button.addTarget(self, action: #selector(showNewMessage), for: .touchUpInside) この時にbuttonをlazyで定義してあげると、アクセス時に初期化されるのでselfが使え るようになります。
今回は、confighogehogeっていう関数で定義しているので使えている感じです。
画面遷移したい Loginページからメイン画面に遷移する
DEMO
参考資料 https://qiita.com/gaku2n/items/fa095276ab2d75cc8797
リポジトリー https://github.com/tiking76/chatapp
やってみておもったこと ・思いのほか自由なことができる反面、改めてIB(Interface Builder)の恩恵が あることを感 じることができました。 ・自分自身UIkitの知識が不足していたので、良い勉強になりました。
ここまで ありがとうございました