Shuntiger Tech Diary

iOS/Androidエンジニアが気になる技術やガジェットなどを気のままお届けするブログ

Macのストレージがなくなりそうなときにすること

Xcodeを使っているとCacheが溜まっていて、気づけば容量が足りないって言うことが結構あります。

 

私の場合はキャッシュやアーカイブ、CoreSimulatorで80GB分くらい容量を削減することができました。

削除したのは以下になります。

- ライブラリ>Developer>CoreSimulator>Device

- ライブラリ>Developer>Xcode>Archives

- ライブラリ>Cashes>org.carthage.CarthageKit

- 不要なipaファイル

 

## 参考

iOSアプリ開発でのキャッシュ削除方法まとめ - Qiita
https://qiita.com/shtnkgm/items/c96a58579ec406194fa8

必ずしもAppStore経由でアプリをインストールする必要はないってこと

会社のMacを使っていて、アプリをインストール、アップデートしたい。

けど、私用のAppleIDを使ってインストールしたくないとき(※iCloudの同期等がこわいため)の対処法。

 解決策: インストールしたいアプリのWEBサイトから直接ダウンロードする。

Slackの場合: 「ダウンロード」を選択して、〇〇.dmgファイルを展開して、アプリケーションフォルダに移動するだけ。

https://slack.com/intl/ja-jp/downloads/mac?geocode=ja-jp

f:id:hyaku-juu-ichi:20191119111428p:plain

 今までMac App Storeからしかインストールすることしかできない、という思い込み。。

 

XcodeもAppStoreからではなくてDeveloperのサイトから直接ダウンロードして管理するのがよさそう。

メモ:

Xcodeの最新版はリネームすると不具合が起きるので、そのまま利用する。

 

Xcodeでブロック"{}"の範囲がわかる

概要

構造体やメソッドなどのブロック"{ }"に⌘を押しつつ、カーソルを当てるとブロックの範囲がわかる。

・検証環境: Xcode10.2.1

f:id:hyaku-juu-ichi:20190816115406p:plain

⌘+クリックでブロックを選択して"Jump to Definition"などの表示を出してあげると、スクロールをしてもブロックの選択の表示が解除されることはありません。

f:id:hyaku-juu-ichi:20190816115439p:plain

if文などでネストが深いときや、階層構造のブロックの範囲がわからないときに便利です。

新しい技術のキャッチアップをする[Swift編]

概要

できるエンジニアがやってそうなキャッチアップ方法についてまとめました。

  • WWDCのセッションをみる。
  • アップルのドキュメントを読む。
  • MediumでSwiftを検索する。
  • SpeakerDeckで検索をする。
  • Qiita、ブログを読む。
  • Swift Evolutionを読む。
  • 勉強会に参加

WWDCのセッションを見る 

WWDC 2019 - Videos - Apple Developer

developer.apple.com

設定をすれば日本語字幕でも見れるので、英語がわからなくても安心。

[設定]>[字幕]>[Japanese]で字幕表示にできる。

f:id:hyaku-juu-ichi:20190814103345p:plain

2~3年前の過去のセッションを振り返り見ても勉強になる。

WWDC 2018 - Videos - Apple Developer
https://developer.apple.com/videos/wwdc2018/

WWDC 2017 - Videos - Apple Developer
https://developer.apple.com/videos/wwdc2017/

WWDC 2016 - Videos - Apple Developer
https://developer.apple.com/videos/wwdc2016/ 

 アップルのドキュメントを読む。

Apple Developer Documentation
https://developer.apple.com/documentation/

セッションできになった技術を深掘りする。

MediumでSwiftを検索する。

Flawless iOS – Medium
https://medium.com/flawless-app-stories 

SpeakerDeckで検索をする。

Speaker Deck - Share Presentations without the Mess
https://speakerdeck.com/

"Date"でソートすれば新しい順で追える。

日本語のスライドも多い。

 - SlideShareも参考にする。

'swift' on SlideShare
https://www.slideshare.net/search/slideshow?searchfrom=header&q=swift

Qiita、ブログを読む。

本文だけではなく、

参考記事、参考URLを深掘りする。

Swift Evolutionを読む。

できる人は開発中の言語仕様を読んで推測している気がする…。

Swift Evolution
https://apple.github.io/swift-evolution/

Swift.org - Welcome to Swift.org
https://swift.org/

勉強会に参加

connpassなどで"swift"で検索。

 

参考記事

【ニュース】WWDC 2019基調講演のビデオが、日本語字幕つきで視聴可能に - iをありがとう
https://arigato-ipod.com/2019/06/apple-wwdc-2019-keynotee-japanese-subtitles.html  

Swiftの開発体制、swift.org/Swift Evolutionリポジトリとは? - Build Insider
https://www.buildinsider.net/column/ono-masayuki/003

Document OutlineでConstraintsを綺麗に揃える

Storyboardで制約をつける際下記の画像のように、

制約の付け方によっては順序がバラバラになり、

左辺をcollectionViewなどのオブジェクトで揃えたい時があります。

f:id:hyaku-juu-ichi:20190813102618p:plain

そういう時はSize InspectorのFirst Item or Second Itemのプルダウンをクリックすると、"Reverse First And Second Item"が表示されるので選択します。 

f:id:hyaku-juu-ichi:20190813102628p:plain

"trailling"と"collectionView.trailling"が反転しました。

f:id:hyaku-juu-ichi:20190813102630p:plain

bottomの制約も"Reverse First And Second Item"で反転させると、

Constraintsが綺麗に揃いました。

f:id:hyaku-juu-ichi:20190813102634p:plain

 

まとめ

綺麗に揃えると制約が見やすいです。

superviewやsafeAreaが左辺にあるとパッと見て、どのオブジェクトに対しての制約かわかりづらい時や、オブジェクトの数が多くなり複雑化した時に有用です。

※"Reverse First And Second Item"で反転した際にリストの並び順がソートされずに揃わない時がありますが、Xcodeを一度再起動してみると揃っている時があります、要確認。

 

未経験からiOSエンジニアに転職してこの半年に読んだ本を語る。

きっかけ

自分自身のふりかえりのために覚えてる範囲で書きます。 

会社に置いてある本、自分で購入した本を半々くらいで読んでます。

思い出しながら記事に書いてますので若干雑な部分があります・・・。

ご了承くださいm(_ _)m

1月

Androidプログラミングバイブル SDK7/6/5/4対応

Androidプログラミングバイブル SDK7/6/5/4対応

Androidプログラミングバイブル SDK7/6/5/4対応

 

初っ端からAndroidなのは、入社して最初の研修がAndroidだったため。

・基礎&応用力をしっかり育成!Androidアプリ開発の教科書*1

基礎&応用力をしっかり育成!  Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン (CodeZine BOOKS)

基礎&応用力をしっかり育成! Androidアプリ開発の教科書 なんちゃって開発者にならないための実践ハンズオン (CodeZine BOOKS)

 

わかりやすいです。この本に書いてあるアプリは一通り作りました。

・たった1日で基本が身に付く!Androidアプリ開発超入門

たった1日で基本が身に付く!  Androidアプリ開発超入門

たった1日で基本が身に付く! Androidアプリ開発超入門

 

2日でできました。内容は深掘りしてないのですが、Androidに対する心のハードルをめちゃ下げてくれるので、こういう本大事です。

というかiOSから入るとSDKエミュレーターマニフェストとか何それ状態なので読むべし。

概要が掴めるとiOSでいうとこれはこういうことね〜ってのがわかってきたりする。

・成長マインドセット

成長マインドセットー心のブレーキの外し方

成長マインドセットー心のブレーキの外し方

 

会社必読本①

・「超」入門 失敗の本質

「超」入門 失敗の本質 日本軍と現代日本に共通する23の組織的ジレンマ

「超」入門 失敗の本質 日本軍と現代日本に共通する23の組織的ジレンマ

 

会社必読本②

2月

・これならわかるサーバー入門の入門

わかばちゃんと学ぶ Git使い方入門

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

 

わかりやすい。コミット、マージ、プルリクが書籍を追っていけば実践できるのが素晴らしいと思う。

プルリクがマージされた時は単純に嬉しい。

 

オブジェクト指向でなぜ作るのか

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

 

インスタンスとはクラスとはポインタとはなどがわかるようになる本。

コードの流れなどを読む時やとエラーが発生した時に、この本で勉強したことが活きてくる。

エンジニアの基礎知識とは改めて重要なんだと感じた本。必読!

なぜ作るのかシリーズは全部読破したいと思ってる。

 ・リーダブルコード

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

 

会社必読本③

オライリー

オライリーだけど読みやすい。ヘルシープログラマーも読みたい。

リーダブルコードでわかるのはコードを書く際のマナー。

実際に良いコードを書くにはGithubとかで自分より上手いプログラマーのコードをひたすら真似て自分のものにすることだと思う!

3月

・SCRUMBOOTCAMP

SCRUM BOOT CAMP THE BOOK

SCRUM BOOT CAMP THE BOOK

 

アジャイル開発についての本。

スプリントとかチームでMTGする際に参考になった。

 

・知識ゼロから学ぶソフトウェアテスト

知識ゼロから学ぶソフトウェアテスト 【改訂版】

知識ゼロから学ぶソフトウェアテスト 【改訂版】

 

テストとは・・・がわかる本。

テストの必要性、種類などが理解できる。 

 

・Gitポケットリファレンス 

Gitポケットリファレンス

Gitポケットリファレンス

 

わかばちゃんと比べると難しい。初心者には必要なさそうな知識もある。

英単語帳のDUO3.0みたいな感じ。

4月

・開発のプロが教える Swift標準ガイドブック

開発のプロが教える Swift標準ガイドブック

開発のプロが教える Swift標準ガイドブック

 

Swift1とかの時に出版された本なので古さはあったが、知らなかったことも出てきたのでためになった。 

 

・中学3年間の英語を10時間で復習する本

カラー版 CD付 中学3年間の英語を10時間で復習する本

カラー版 CD付 中学3年間の英語を10時間で復習する本

 

プログラミングは英語超必須。ということで読んだらドキュメントがスラスラ読めるかと思ってたけど、全然入ってこない笑

ドキュメントに関しては日本語で書かれていても難しく感じる時があるのよね( ;∀;)

mikanとか英単語のアプリをやりつつ、何回か読んで習得する予定!

 

 ・高校3年間の英語を10時間で復習する本

カラー版 CD付 高校3年間の英語を10日間で復習する本

カラー版 CD付 高校3年間の英語を10日間で復習する本

 

 

勝又さんの動画でオススメされていた本

エンジニアにとっての「英語」の重要性について説明します。 - YouTube
https://www.youtube.com/watch?v=EIXMJyQqws4

 

・Webを支える技術 -HTTP、URI、HTML、そしてREST

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

 

研修でRailsを触る機会があったので事前学習のために読んだ。

APIを作りながら読むとなるほどな〜と思う。

読むとWEB用語が漠然とわかる。

 

5月

・RubyOnRails5 アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

 

全てを読み進めてはいないがO/Rマッパーとかの概念は理解できた。

Rails楽しい。

 

・RxSwift研究読本1

booth.pm

先輩からのおすすめ本①

読むたびに新しい発見がある。

Rxについて理解が深まる・・・。

 

・RxSwift研究読本2

先輩からのおすすめ本②

swift.booth.pm

・RxSwift研究読本3

先輩からのおすすめ本③

swift.booth.pm

・はじめてのUIデザイン

peaks.cc

はじめてのUIデザインについては記事にもしてます。 

hyaku-juu-ichi.hatenablog.com

6月

・全員経営者マインドセット

全員経営者マインドセット――MSマトリクスで実現する次世代組織

全員経営者マインドセット――MSマトリクスで実現する次世代組織

 

 

・RxSwift研究読本1(2回目)

再読。

 

・プログラムはなぜ動くのか

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

 

読んでいて半分くらいしか理解できなかったくらい、

若干難しく感じたので、基本情報を勉強する際に再度読む!

 

・ 核心のイメージがわかる!前置詞キャラ図鑑

核心のイメージがわかる!前置詞キャラ図鑑

核心のイメージがわかる!前置詞キャラ図鑑

 

 

・さわって学べる!iOSテスト駆動開発 

shindyu.booth.pm

いま途中まで読んでる本

・Swift実践入門 (3回目)

内容がスッと入ってきて感動を覚えるレベルになってきた。

この本も何回読んでも新しい発見がある。

iOSエンジニアのバイブル的な本かもしれない。

 

・継続的にアウトプットし続ける方法。

ブログもQiitaもアウトプット大事!✧٩(ˊωˋ*)و✧

ということで読む。

 

・SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

 

 

これから読みたい本

 ・詳解 Swift 第4版

詳解 Swift 第4版

詳解 Swift 第4版

 

 

ロジカルシンキングの本

ロジカル・シンキング (Best solution)

ロジカル・シンキング (Best solution)

 

相手に伝わるように話す、ということが物凄く大事と日々実感してる。

日常でもビジネスでも使えるコミュニケーションを学ぶために読みたい。

 

・ヘルシープログラマ プログラミングを楽しく続けるための健康Hack 

ヘルシープログラマ ―プログラミングを楽しく続けるための健康Hack

ヘルシープログラマ ―プログラミングを楽しく続けるための健康Hack

 

職業柄、座り仕事なので、姿勢が猫背になったりと結構不調になりつつある・・・。

ので、体調管理のTips目的に読みたい。

 

 ・エンジニアの知的生産術

インプット、アウトプットのベストプラクティスを知りたい。

 

・ノンデザイナーズ・デザインブック

ノンデザイナーズ・デザインブック [第4版]

ノンデザイナーズ・デザインブック [第4版]

 

 

プログラマーが知るべき97のこと 

プログラマが知るべき97のこと

プログラマが知るべき97のこと

 

 

・コーディングを支える技術

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)

 

 

・体系的に学ぶ 安全なWebアプリケーションの作り方

 

・エンジニアのためのマネジメントキャリアパス –テックリードからCTOまでマネジメントスキル向上ガイド 

エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド

エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド

 

 

・「納品」をなくせばうまくいく

「納品」をなくせばうまくいく

「納品」をなくせばうまくいく

 

 ・Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

 

 

  

まとめ

本を全く読まなくてもすごい先輩エンジニアもいるので、

読書量 = 正義 or 年収でもなさそう。

自分は本を読んで点と点が繋がった時がたまにあるので、継続的に読んでいきたい。

 

また結構技術書は高いので、会社にお願いして購入して貰うか、公立図書館を利用するのが良さげです。

いい本あったら教えてください。

*1:本屋で一通り見た中で一番わかりやすかったのでおすすめです

Hot / Coldの性質についてまとめ。

きっかけ

下記のスライドが読んだらHot / Coldが少しわかった。

参考

・今日こそ理解するHot / Cold @社内RxSwift勉強会
https://www.slideshare.net/yukitakahashi3139241/hot-cold

前提知識

・Hot/Coldは「Observable」の性質
・各種Operator(を表すクラス)は「Observable」である

Hot / Coldの見分け方

・SubjectはHotである

・ほとんどのOperatorはColdである

map,filterなどはCold

・publishなど一部のOperatorはHot

Hotに関連するオペレーター以下のみ。

・multicast / publish

・replay / replayAll

・connect / refCount

・share / shareReplay

・shareReplayLatestWhileConnected

Coldの性質

ColdなObservableはsubscribeされるまで動作しない

ColdなObservableは分岐できない

Hotの性質

HotなObservableはsubscribeされなくても動作する

HotなObserbavleは前のColdを稼働させる

HotなObservableは分岐できる

分岐 = Observerを複数持てる

HotなObservableのイベントは各Observerで共有される