Upload
Download free for 30 days
Login
Submit Search
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
3 likes
5,912 views
L
leverages_event
1 of 52
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
More Related Content
PDF
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Masaru Gushiken
PDF
既存プロジェクトにSwiftLintを導入した話
akatsuki174
PPTX
【Swift】 それ、enumとstructでやってみましょう!!
Yu Tanaka
PDF
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
PDF
はじめてのiOSアプリ開発 ①
Nagamine Hiromasa
PDF
iOS豆知識ver0.0.5
ppengotsu Name
PDF
少しずつ手厚くして不具合や仕様漏れを防ぐために
Fumiya Sakai
PDF
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
Fumiya Sakai
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Masaru Gushiken
既存プロジェクトにSwiftLintを導入した話
akatsuki174
【Swift】 それ、enumとstructでやってみましょう!!
Yu Tanaka
Swiftのプロパティオブザーバを使い倒す
Tomoki Hasegawa
はじめてのiOSアプリ開発 ①
Nagamine Hiromasa
iOS豆知識ver0.0.5
ppengotsu Name
少しずつ手厚くして不具合や仕様漏れを防ぐために
Fumiya Sakai
ReactNative + Redux + NativeBaseでつくるサンプル実装をのぞく
Fumiya Sakai
What's hot
(20)
PDF
Codeigniter3フレームアップデート
tomohiro kitaura
PDF
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
Yusuke Hirao
PDF
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
Koichi ITO
PDF
Swift afterbeginner
Kiminari Homma
PDF
Swiftだめ自慢Beta5
今城 善矩
PDF
Swiftビギナーズ勉強会 第1回 @Co-Edo
Megumi Otani(Czenhe)
PDF
Swiftの実際ダメな所
S_Shimotori
PDF
PHPUnitでリファクタリング
Takako Miyagawa
PDF
Code igniterを初めて使うときにはまった4つのポイント
noldor
PPTX
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
Taichi Watanabe
PDF
Swift 1.2からSwift 2への移行 #cocoa_kansai
Syo Ikeda
PDF
Swiftビギナーズ倶楽部 vol.2
Kanako Kobayashi
PDF
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
PDF
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
Hiroshi Toda
PDF
Win32 APIをてなずけよう
Kouji Matsui
PDF
ほんわかSwift勉強資料
kouhei kawamata
PDF
Swift afterbeginner
Kiminari Homma
PDF
Xcode and iTC submission topics
Syo Ikeda
PDF
CodeIgniter をモダンに改造してみた
Masaru Matsuo
PPTX
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
Codeigniter3フレームアップデート
tomohiro kitaura
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
Yusuke Hirao
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
Koichi ITO
Swift afterbeginner
Kiminari Homma
Swiftだめ自慢Beta5
今城 善矩
Swiftビギナーズ勉強会 第1回 @Co-Edo
Megumi Otani(Czenhe)
Swiftの実際ダメな所
S_Shimotori
PHPUnitでリファクタリング
Takako Miyagawa
Code igniterを初めて使うときにはまった4つのポイント
noldor
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
Taichi Watanabe
Swift 1.2からSwift 2への移行 #cocoa_kansai
Syo Ikeda
Swiftビギナーズ倶楽部 vol.2
Kanako Kobayashi
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
Tomoki Hasegawa
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
Hiroshi Toda
Win32 APIをてなずけよう
Kouji Matsui
ほんわかSwift勉強資料
kouhei kawamata
Swift afterbeginner
Kiminari Homma
Xcode and iTC submission topics
Syo Ikeda
CodeIgniter をモダンに改造してみた
Masaru Matsuo
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
Ad
Similar to 【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
(20)
PDF
ブランディングエンジニア資料
Masaru Gushiken
PDF
Swiftビギナーズ
Masaru Gushiken
PDF
Yahoo!アフィリエイトソン最優秀賞者に学ぶ Swift講座
Masaru Gushiken
PDF
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
Masaru Gushiken
PPTX
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
Koichiro Sumi
PDF
「なぜクリエイティブ制作は自動化できないのか? 〜広告史を巡って〜」セプテーニ加来幸樹×フクロウラボ林田朋也
じょいとも
PDF
塹壕にいるすべての同朋へ
toshihiro ichitani
PPTX
Webエンジニアのサバイバル英会話
Jumpei iwamura
PDF
リモートチームとふりかえり改善フレームワーク
Maehana Tsuyoshi
PDF
アジャイルソフトウェア開発の道具箱
Koichi ITO
PDF
Objective-Cプログラマのためのswift導入法
Tomoki Hasegawa
PDF
Photon Enterprise Cloud 事例
Tomotsune Murata
PDF
受託案件を通じてみたWindows8ストアアプリ
Ikkai Takeshi
PPT
【SEOの基本のキホン】title・meta description・h1の付け方講座
ナイル株式会社
PPTX
UXを損ねる静的コンテンツ配信アンチパターン7選
Yuki Okada
PDF
受託案件を通じてみたWIndows8ストアアプリ
Ikkai Takeshi
PDF
20120316 designerworkshoppublished
Yoichiro Sakurai
KEY
iPhone/Android アプリをまとめて省エネ開発する技術
vaccho
KEY
20120413 nestakabaneworkshop
Yoichiro Sakurai
PDF
.NET Lab2022年2月
TomomitsuKusaba
ブランディングエンジニア資料
Masaru Gushiken
Swiftビギナーズ
Masaru Gushiken
Yahoo!アフィリエイトソン最優秀賞者に学ぶ Swift講座
Masaru Gushiken
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
Masaru Gushiken
プロトタイプとMVPの開発上のギャップの大きさ。リンスタ関ヶ原 東軍先鋒 #devlove
Koichiro Sumi
「なぜクリエイティブ制作は自動化できないのか? 〜広告史を巡って〜」セプテーニ加来幸樹×フクロウラボ林田朋也
じょいとも
塹壕にいるすべての同朋へ
toshihiro ichitani
Webエンジニアのサバイバル英会話
Jumpei iwamura
リモートチームとふりかえり改善フレームワーク
Maehana Tsuyoshi
アジャイルソフトウェア開発の道具箱
Koichi ITO
Objective-Cプログラマのためのswift導入法
Tomoki Hasegawa
Photon Enterprise Cloud 事例
Tomotsune Murata
受託案件を通じてみたWindows8ストアアプリ
Ikkai Takeshi
【SEOの基本のキホン】title・meta description・h1の付け方講座
ナイル株式会社
UXを損ねる静的コンテンツ配信アンチパターン7選
Yuki Okada
受託案件を通じてみたWIndows8ストアアプリ
Ikkai Takeshi
20120316 designerworkshoppublished
Yoichiro Sakurai
iPhone/Android アプリをまとめて省エネ開発する技術
vaccho
20120413 nestakabaneworkshop
Yoichiro Sakurai
.NET Lab2022年2月
TomomitsuKusaba
Ad
More from leverages_event
(20)
PDF
Ac tsumugu 20170712
leverages_event
PDF
20171206 tsumugu4 人工知能特集_v1.00_抜粋
leverages_event
PDF
【ヒカ☆ラボ】アーキテクト養成講座「入門編」 折田 武己 氏 登壇資料 20171205
leverages_event
PDF
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
leverages_event
PDF
【ヒカ☆ラボ】 dely株式会社 大竹 雅登氏 登壇資料 20171121
leverages_event
PDF
【ヒカ☆ラボ】 dely株式会社 深尾 もとのぶ氏 登壇資料 20171121
leverages_event
PDF
【ヒカ☆ラボ】 dely株式会社 三笠 斉輝氏 登壇資料 20171121
leverages_event
PPTX
【ヒカ☆ラボ】 株式会社AMG Solution 山口 博史氏登壇資料 20170817
leverages_event
PPTX
【ヒカ☆ラボ】株式会社ライナフ 登壇資料
leverages_event
PDF
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
leverages_event
PPTX
インスタグラムを活用した、マーケティングについて
leverages_event
PDF
ヒカ☆ラボ ユニティ・テクノロジーズ・ジャパン合同会社 安原 祐二氏登壇資料_20170119
leverages_event
PPTX
ヒカ☆ラボ 株式会社PR TIMES 山田 和広氏登壇資料 20161129
leverages_event
PPTX
ヒカ☆ラボ 株式会社PR TIMES 新井 隆士氏登壇資料 20161129
leverages_event
PDF
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
leverages_event
PDF
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」UIデザイナー
leverages_event
PDF
初心者向けGo言語勉強会
leverages_event
PDF
DMM.comラボはなぜSparkを採用したのか?レコメンドエンジン開発の裏側をお話します!
leverages_event
PPTX
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
PDF
株式会社waja 安藤様 登壇資料
leverages_event
Ac tsumugu 20170712
leverages_event
20171206 tsumugu4 人工知能特集_v1.00_抜粋
leverages_event
【ヒカ☆ラボ】アーキテクト養成講座「入門編」 折田 武己 氏 登壇資料 20171205
leverages_event
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
leverages_event
【ヒカ☆ラボ】 dely株式会社 大竹 雅登氏 登壇資料 20171121
leverages_event
【ヒカ☆ラボ】 dely株式会社 深尾 もとのぶ氏 登壇資料 20171121
leverages_event
【ヒカ☆ラボ】 dely株式会社 三笠 斉輝氏 登壇資料 20171121
leverages_event
【ヒカ☆ラボ】 株式会社AMG Solution 山口 博史氏登壇資料 20170817
leverages_event
【ヒカ☆ラボ】株式会社ライナフ 登壇資料
leverages_event
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
leverages_event
インスタグラムを活用した、マーケティングについて
leverages_event
ヒカ☆ラボ ユニティ・テクノロジーズ・ジャパン合同会社 安原 祐二氏登壇資料_20170119
leverages_event
ヒカ☆ラボ 株式会社PR TIMES 山田 和広氏登壇資料 20161129
leverages_event
ヒカ☆ラボ 株式会社PR TIMES 新井 隆士氏登壇資料 20161129
leverages_event
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
leverages_event
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」UIデザイナー
leverages_event
初心者向けGo言語勉強会
leverages_event
DMM.comラボはなぜSparkを採用したのか?レコメンドエンジン開発の裏側をお話します!
leverages_event
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
株式会社waja 安藤様 登壇資料
leverages_event
【ヒカ☆ラボ】初心者向けSwiftアプリのリファクタリング
1.
初心者向け Swiftアプリの リファクタリング @g08m11
2.
自己紹介
3.
自己紹介 沖縄そば/鶏肉大好きの沖縄出身(28) 趣味はCafe巡り、映画鑑賞 お酒弱いけどお酒好き 暑い所苦手、日焼け苦手 アフィリエイトソン 最優秀賞 2B Hack
企業賞(3社受賞) 10回以上の勉強会や講演会を実施
4.
自己紹介 日立系SIer→Oracleパートナー会社へ 現在は(株)じげんのエンジニア Rails/Swiftの開発がメイン KPIに沿ったGrowth Hackを主導 g08m11でQiitaやってます。 Growth Hack+Webではてなブログやってます。
5.
じげんとは?
6.
じげんとは?
7.
じげんとは?
8.
じげんとは?
9.
• iOS開発、Swift開発を個人で学習してる方 • Swiftで今後もアプリを改善や運用を されていく方 今日のプレゼン対象者
10.
• 基本的なことがメインになっています。 (難しいことはしていません。) • リファクタリング後の生産性の数値など 定量的な数値はありません。 注意
11.
去年アプリを リリースしました!
12.
STEP1 STEP2 AppleSTEP3 Apple STEP4
13.
Gantter
14.
見積もりポーカー
15.
KPT
16.
バーンダウンチャート
17.
詳細はこちらを!
19.
または
20.
「Apple審査 じげん」 で検索
21.
ところが
22.
• ViewControllersが整理されていない • デフォルトの構成(Xcodeの自動生成) に引っ張られ過ぎ •
冗長的な記述による可読性が低下 • キャメルケースと通常の書き方が混在
23.
• ViewControllersにロジック全部書き込ん でいたことでソースの可読性が低下 • 初期化処理の記述が異常に多い •
Array型とDictionary型が混在 • 開発環境と本番環境の差分が 考慮されてない
24.
などなど・・・
25.
オレオレコーディング・・・
26.
このままでは・・・
27.
• 後任者の選定や引き継ぎが困難 • 機能の改善に時間が掛かる •
バグの修正に時間が掛かる • 潜在的なバグが摘めない
28.
開発スピードもサービスも 改善されない
29.
Let s Refactoring!
30.
コーディング規約の策定
31.
• インデントやコメントの書き方 • 変数名や定数名、定数定義の書き方 •
関数やクラスの書き方
32.
例:キャメルケースの統一
33.
参照元:「Swiftコーディング規約@Wantedly」
34.
Stock + 認識のすり合わせ
35.
Xcodeをフル活用
36.
• コーディング規約通りに一括置換 • Info.plistやBuild
Settingsを活用
37.
Info.plist Supported interface orientations GA
ID
38.
Build Settings Debug Release
39.
MVC構成に則る
40.
Xcode MVC
41.
Xcode MVC ViewControllersModels
42.
ViewController Model 意識したこと • Model:アプリケーションの状態を表すもの&状態の加工メ ソッドをまとめたもの •
ViewController:Modelの加工メソッドの操作&Viewの操 作をする人「であり」Modelの状態を参照し視覚表現するもの
43.
ViewController Model Modelでは • 画像の処理はImageManager.swiftというモデルで行う •
GAのカテゴリーやイベントの設定は GoogleAnalyticsManager.swiftというモデルで行う
44.
ViewController Model ViewControllerでは • クリックイベントやナビゲーションボタン押下などのユーザー からの入力に対しての操作 •
modelの関数へ値を渡し、その結果を表示させる。 (ViewControllerのためそのまま表示が可能)
45.
ViewController Model model View
46.
DEMO
47.
デザインパターンを適用する
48.
まとめ
49.
• リリースを急ぎすぎるとつぎはぎのソース になってしまう。 • ちょっとした事でもソースの可読性が格段 に上がる
50.
• ベースとなるコーディング規約はありなが らも自分達に合わせるカスタマイズも大事 • Swiftはデザインパターンを適用しやすい。
51.
• Refactoringは出来るところから始める。 • 遅すぎる技術的負債の還元になる前に、 気づいた所からまずやってみる。
52.
じげんでは絶賛エンジニア/デザイナー募集中です!
Download