エンジニアとしてインターン生にメンターを何人かした
実践して欲しい第一回。課題図書。
基本的にこれ読んでおいて欲しいって本を備忘としてリストアップしておく。
必須
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) Dustin Boswell
前提として、ある程度書けるようになってから。一ヶ月ごとにサクッと3回くらい読むと深みが増す。 良書は何回も読む。これを読んで貰わないとコードレビュー時に指摘回数多くて辛い。
必須ではないけどオススメ
色んなエピソードがあってサクッと読めてやる気出る
情熱プログラマー ソフトウェア開発者の幸せな生き方 Chad Fowler
一発当て切った人のアドバイス
SOFT SKILLS ソフトウェア開発者の人生マニュアル ジョン・ソンメズ
所感
じぶんももっかい読もうと思った(笑)
Ref
vimでファイルを跨いだ置換処理をしたい
1つのファイル内は%s/hoge/fuga/gc
でよくやるけど、multiple fileは忘れやすいのでメモ
iOSProjectを想定しています。Project内を検索してAppDelegate.swift, ViewController.swiftのファイルを取り出して置換したいんす
やりたいこと
- 別々の階層にあるファイルを跨いだ置換処理
やったこと
cd ~/.ghq/github/SwiftHogeProject/SwiftHogeProject vim AppDelegate.swift
2
. ほんで以下のコマンド
:args **/*.swift :args :argdo %s/class/final class/ge | :update
継続と言う文字が表示されるがshift+g
で自動で最後までやってくれる。
ただ、xvimでやっても動かなかった。なんでや。。
フォルダ構成
├── SwiftHogeProject │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift // ここが`Controller/ViewController`とかになってても置換できる。やったね └── SwiftHogeProject.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ └── omatty.xcuserdatad │ └── UserInterfaceState.xcuserstate └── xcuserdata └── omatty.xcuserdatad └── xcschemes ├── SwiftHogeProject.xcscheme └── xcschememanagement.plist
XcodeでBreakPointで止まらなくなった時の設定
結論
BuildSetting/Generate Debug Symbols
をYesにする
背景
- Swift3移行時に、warningの対処をしていた時に不要なflagまで変えてしまっていた
- こいつのせいでDebugしたいのに出来ない。辛いってなってたので、覚書。
Swift3のClass名.selfとはなにか
型名を返したい時に出てくる
.selfってなんやねんと
> メタタイプと呼ばれている型です。メタタイプはクラスやストラクチャ、列挙型、プロトコルが何であるか判別するための特別な型です。
## 参考
- http://stackoverflow.com/questions/39495021/dynamictype-is-deprecated-use-typeof-instead
- http://dev.classmethod.jp/smartphone/iphone/swift-3-type-of/#toc-type-
XcodeでStoryboard/XibのViewに枠線をつけて分かりやすくする
What
Where
Editor/Canvas/Show Bounds Rectangle
にチェック
Xcode7の新機能であるExtraViewを触って見た
要約
- storyboard内のViewController内に直接置くのではなく、名の通りExtraViewとして、Viewを生成させる。使う時はaddSubViewする。
書いた動機
こちらの記事を読んでもしっくり来なかったので自分で触った
所感
Qiitaの記事にあるように
上記のようなエラー時のみに表示したいViewや、特定のボタンなどをタップした際に表示されるメニューを作るときに便利そうですね!今までであれば 別xibファイルでViewを作成したり、SceneのView上で直接レイアウトを作成して初期値を hidden = true にしておくしていたかと思います。
1.エラー時のみに表示したいView
2.特定のボタンなどをタップした際に表示されるメニューを作るとき
自分の言葉で言い換えると
- CommonViewにするまでもなさそうなCustomView
- コードでレイアウトいじる前提のView、例えば外からアニメーションしたりするView
とかに有効かなーと思いました。
Document
追記
@IBOutlet private var button: UIButton!
で
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)
とかに有効...!