一日生涯

備忘録

エンジニアとしてインターン生にメンターを何人かした

実践して欲しい第一回。課題図書。

基本的にこれ読んでおいて欲しいって本を備忘としてリストアップしておく。

必須

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (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のファイルを取り出して置換したいんす

やりたいこと

  • 別々の階層にあるファイルを跨いだ置換処理

やったこと

  1. 変更したいディレクトリ直下に移動し、vimで開く
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

blog.ruedap.com

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-

君の名は。観た

> 瀧の目で初めて東京を見た三葉は素敵な街だなと思い、三葉の目で三葉の住む自然豊かな町を見た瀧はいいところだなと思う。たがいの友人たちと交流し、こういう人間と友達である瀧は、三葉はどんな人間なんだろうと興味をもつわけです。だから、その環境を美しく描くというのは絶対に必要なことだったのです。

 

なるほど、だからあんなに美しく、物語も映えたのか。

 

Xcode7の新機能であるExtraViewを触って見た

要約

  • storyboard内のViewController内に直接置くのではなく、名の通りExtraViewとして、Viewを生成させる。使う時はaddSubViewする。

    書いた動機

    qiita.com

こちらの記事を読んでもしっくり来なかったので自分で触った

f:id:omatty198:20160109155337p:plain

所感

Qiitaの記事にあるように

上記のようなエラー時のみに表示したいViewや、特定のボタンなどをタップした際に表示されるメニューを作るときに便利そうですね!今までであれば 別xibファイルでViewを作成したり、SceneのView上で直接レイアウトを作成して初期値を hidden = true にしておくしていたかと思います。

1.エラー時のみに表示したいView

2.特定のボタンなどをタップした際に表示されるメニューを作るとき

自分の言葉で言い換えると

  1. CommonViewにするまでもなさそうなCustomView
  2. コードでレイアウトいじる前提のView、例えば外からアニメーションしたりするView

とかに有効かなーと思いました。

Document

追記

@IBOutlet private var button: UIButton!navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button) とかに有効...!