高身長プログラマ

口だけだったプログラマが奮闘するブログ。iOS, Android

Gitコマンド備忘録

forkにない機能を利用する際の備忘録


git rebase -i [commit hash]

リベース(コミット編集)
commit hashには、編集したいコミットの1つ前のものを指定する。

vimの操作
i : コマンドモードから挿入モード、 ESC : 挿入モード終了、 :w : 保存、 :q : 終了


git diff --stat [commit hash1] [commit hash2]

ファイル差分行数確認(追加 + 修正)


「アウトプット大全」から学ぶ、ブログを書く3ポイント!

はじめに

ブログは気軽に始められる反面、これまでアウトプットをしてこなかった人にとっては続けることが難しいと思います(私自身もそう)。

今回、ブログを書いていくにあたり、「学びを結果に帰るアウトプット大全」を読みました。


アウトプット方法が80項目にまとめられており、私が学びたかったブログの書き方についても記載されていました。

その中から特に大事だと感じた3つの項目について紹介していこうと思います!

1. 「最後まで完成させる」ことが重要

本書に、「文章の質は別として、最後まで完成させることが重要」とあります。

私もそうですが、やはりブログを書くとなると
「どんな記事を書こう?」「こんな記事じゃ書く必要ないか...」など、考えすぎてしまいます。

そうではなく、とりあえず質は関係なく完成させることが重要という考えです。
記事を書くことに時間をかけ過ぎているとやはり継続していくことが面倒になってきます。

「とりあえず書く!」ことを意識することで完成させる時間を減らすことができ、内容に不満がある場合も後から直してしまえば、結果として内容・時間ともに効率的になるということです!

2. 構成を決めてから書き始める

「とりあえず完成」「質は別として〜」と言われてもそもそも記事を1つ完成させることが難しいと思います。

そのため、本書では、速く文章を書くコツとして、
構成を決めてから書く」ということを挙げられています。

箇条書きでも良いので記事の構成を事前に決めておくことが大事です。

例えば、プログラムでいうと設計書を書いてから実装を進めるか、設計書なしで進めていくかということです。

勿論、設計書ありの方が質、時間ともに効率的に進めることができます。

3. 「ビフォー」+「気づき」+「TODO」で構成する

2.で構成を決めてから書き始めることについて書きましたが、構成を決める際に「ビフォー」+「気づき」+「TODO」を意識することが大事です。

今回の記事の場合、以下のように考えました。

  • ビフォー:ブログを書き方が分からない
  • 気づき :「アウトプット大全」から学んだ3ポイント
  • TODO :その3ポイントを意識して実行していく

この3点について詳細に内容を書いていくことで
内容にまとまりがある文章を書くことができます!!

4. まとめ

今回は、「学びを結果に帰るアウトプット大全」から学んだ内容をまとめました。
この3ポイントを意識しつつ、アウトプットを続けていこうと思います。

本書には、「書く」以外にも「話す」「TODO(行動)」などのアウトプット方法も紹介されているのでアウトプットについて学びたい方にはとてもオススメです!

Xcodeでオススメのショートカット一覧

当たり前ですが、開発効率を上げるためには
ショートカットを駆使することがとても重要になってきます!

そこで個人的によく使うショートカットを記載していきます。


Cmd + Shift + O

ファイルやメソッドの検索


Cmd + Ctrl + ↑ / ↓

ヘッダーファイル、実装ファイルの切り替え


Cmd + Ctrl + → / ←

進む / 戻る


Cmd + T

タブ追加


Cmd + W

タブ削除


Cmd + Shift + [ / ]

タブ移動


Cmd + B

ビルド


Cmd + R

実行


Cmd + . (ピリオド)

停止


Cmd + Shift + 2

バイス画面を開く


Ctrl + I

インデントを整える


ESC

コード補完

【iOS】Auto Layoutで非表示箇所を簡単にトルツメ!

はじめに

非表示にした部分のレイアウトを詰めたい場面は多々あると思います。
その方法のご紹介です。

※iOS9以降では、UIStackViewを使用した方が簡単だと思いますが、
 iOS9未満をサポートしないといけない場合の参考になれば!

全体

f:id:n_yuu30:20181024004046g:plain UIButtonを3つ並べています。

今回は真ん中の"Button2"を非表示となった場合に
"Button3"がトルツメされるよう実装していこうと思います。

Auto Layout設定

各ボタンのAuto Layout設定です。
左隣のボタンから15、上下は配置した位置のまま設定していきます。

Button3は、Button2が非表示になった場合に
トルツメしたいのでButton3 → Button1へのAuto Layoutも設定します。

その1 Button1

f:id:n_yuu30:20181023234300p:plain

その2 Button2

f:id:n_yuu30:20181023234315p:plain

その3 Button3

f:id:n_yuu30:20181023234338p:plain

その4 Button3 → Button1 へ設定

f:id:n_yuu30:20181023235001p:plain

ここまで設定が終わると"その3" と "その4"の制約が競合しているため、エラーとなっていると思います。
"その4"の制約はButton2が非表示になった場合に有効となればいいため、今のところ必要ありません。
なので、Priority(優先度)を下げ、"その4"の制約が効かない状態にします。

その5 "その4"の制約のPriorityを下げる(1000 → 250)

f:id:n_yuu30:20181024000044p:plain

これでエラーがなくなったと思います。
続いて、コードの処理部分を見ていきます。

コードで表示/非表示時の処理

f:id:n_yuu30:20181022002516p:plain ストーリーボードとの紐付けは以下を行なっています。
・Button2
・Button2の右側マージン(その3で設定している左15)
・showボタン押下時のアクション
・hiddenボタン押下時のアクション

Button2 非表示処理(hiddenボタン押下時)
  1. Button2を非表示に設定
  2. Button2の右側マージンのActiveをfalseに設定
    → constantのActiveにfalseに設定するとその制約が無効となります。
     そのため、"その5"で設定したPriority250の制約が有効となります。
Button2 表示処理(showボタン押下時)
  1. Button2を表示に設定
  2. Button2の右側マージンのActiveをtrueに設定

⭐️注意点としては、constantにActive=falseを設定するとconstantがnilとなってしまうため、プロパティ属性のweakを消しておく必要があります。

以下のサイトを参考にさせていただきました。
egg-is-world.com