小さなチーム大きな仕事-書評

読んだので書評として残して起きます。

とにかく無駄なものは排除

この本では仕事の中にある無駄に削ぎ落とすと小さなチームで十分ではないかということを説いた本だと私は思います。

例えば

一時間かかる会議を設定し、
参加者を一〇人召集したとしよう。
これは実際には一時間の会議ではなく
一〇時間の会議である

会議を大人数ですることで時間が失われます。 その分生産性が失われて人が足りないと錯覚してしまいます。

なので会議はなくす、もしくは極力少なくすることが大事だと書かれていました。

誰かに話しかけること自体に相手の時間を奪うことと同じとも書かれておりました。

どうしても何か聞きたいことなどはチャットを使うことが私は有効だと思います。

モニターから目を離さずに質問などすることができるので集中力を切らさないことができると私は考えています。

すごい製品や、サービスを作る秘訣

これからビジネスをはじめようとか、はじめたい方へのアドバイスも書かれていました。

すごい製品やサービスを
生み出す最も単純な方法は、
あなたが使いたいものを作ることだ。

この考え方ってすごく大事だな〜と思っていて、自分が個人開発するときは全てこの基準でソースコードを書いています。

今この記事を書いているエディタも自分で開発したツールです。

近々リリース致しますのでよければダウンロードおねがい致します。(無料です)

f:id:jesus9387:20171016232123p:plain:w300:h700

顧客の言うことを聞いていたら、
もっと速く走る馬を彼らに与えていただろう

ヘンリー・フォード

顧客の言うことを聞きすぎるのはよくないとをいっていると私は解釈しました。

自分の尊敬するApple社はいつもこの考え方をしてると私は思っています。

MacにUSBを取り去ってUSB-Cに変えて批判を受けても、今一番売れているノートパソコンはMacbookproです。

自分の中の何かしら信念を持って製品を作り続けるということはかなり重要な考え方だと私は思います。

注文の多い少数の顧客を幸せにするために
多くの人に迷惑をかけ、
商品を台無しにしてしまうのは良くない。

注文の多い顧客に対してあれこれカスタマイズして疲弊するのはその製品自体をどんどん悪くするのと同じだと解釈しました。

業務でこういうことを経験したことがあってかなりぐさっときました。

## 商品リンク

よろしければ

ブログ更新したらツイートしたりしていますのでよろしければフォローお願い致します。

twitter.com

マネーフォワードのような横スワイプでタブを切り替えできるライブラリXLPagerTabStripを使ってみた

横スワイプで画面を切り替えれるかっこいいアニメーションを導入したくてライブラリを導入したのでメモとして残しておきます。

今回導入するのはこちらです。

github.com

f:id:jesus9387:20171010123242g:plain

かっこいいですね。

Install

Cocoapodsから導入できます。 Cocoapodsを入れてない場合は導入してください。 (導入方法はググればたくさんでてきます)

Podfileに下記を追加

pod 'XLPagerTabStrip'

追加したPodFileを保存し、下記を実行

pod install

管理元ViewControllerと切り替えるViewControllerを作成する

ルートのViewControllerと切り替え用のViewControllerを作成する

f:id:jesus9387:20171010124851p:plain

次に、切り替え用のViewControllerそれぞれにStoryboardIDを設定してください

f:id:jesus9387:20171011093245p:plain

(もうひとつのstoryboardには別のIDを設定してください)

ソースコード設定

下記のように設定する

管理するルートViewController

import UIKit
import XLPagerTabStrip


class ViewController: ButtonBarPagerTabStripViewController{

    override func viewDidLoad() {

        //バーの色
        settings.style.buttonBarBackgroundColor = UIColor(red: 73/255, green: 72/255, blue: 62/255, alpha: 1)
        //ボタンの色
        settings.style.buttonBarItemBackgroundColor = UIColor(red: 73/255, green: 72/255, blue: 62/255, alpha: 1)
        //セルの文字色
        settings.style.buttonBarItemTitleColor = UIColor.white
        //セレクトバーの色
        settings.style.selectedBarBackgroundColor = UIColor(red: 254/255, green: 0, blue: 124/255, alpha: 1)

        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
        //管理されるViewControllerを返す処理
        let firstVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "First")
        let secondVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Second")
        let childViewControllers:[UIViewController] = [firstVC, secondVC ]
        return childViewControllers
    }


}

管理されるViewController 管理されるViewControllerの数だけViewControlerを下記のように編集してください。

import UIKit
import XLPagerTabStrip


class Chenge1ViewController: UIViewController, IndicatorInfoProvider {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    

    //必須
    func indicatorInfo(for pagerTabStripController: PagerTabStripViewController) -> IndicatorInfo {
        return "First"
    }

}

ルートのViewControllerにCollectionViewとScrollViewを追加する

管理するViewControllerにCollectionViewとScrollViewを追加してください。

f:id:jesus9387:20171011093439p:plain

CollectionView:切り替えタブ表示エリア ScrollView:表示するViewエリア

となります。

Storyboardの設定

CollectionView、ScrollViewそれぞれに下記の操作をおこなってください。

CollectionViewもしくはScrollViewを右クリック→Referencing outletのNew Reference outletをドラッグして 親のViewControllerにカーソルを当てる→containerViewを選択

f:id:jesus9387:20171011093650p:plain

実行してみる

f:id:jesus9387:20171011125624g:plain

カスタマイズ

下記の部分を変更することでタブをカスタマイズすることができます。

 override func viewDidLoad() {

        //バーの色
        settings.style.buttonBarBackgroundColor = UIColor(red: 73/255, green: 72/255, blue: 62/255, alpha: 1)
        //ボタンの色
        settings.style.buttonBarItemBackgroundColor = UIColor(red: 73/255, green: 72/255, blue: 62/255, alpha: 1)
        //セルの文字色
        settings.style.buttonBarItemTitleColor = UIColor.white
        //セレクトバーの色
        settings.style.selectedBarBackgroundColor = UIColor(red: 254/255, green: 0, blue: 124/255, alpha: 1)

        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

詳しくはGithubに書かれていますのでここをご覧ください。

github.com

サンプルは下記にありますのでよければどうぞ

github.com

よろしければツイッターもフォローお願いします

twitter.com

時間がないを言い訳にしないためにしていること

エンジニアたるもの勉強をし続けることが大事だとネット上で言われ続けています。

これについては賛否両論あるかと思いますが個人的にMarkdownでかけるメモアプリを開発しています。 (この記事も自分で作ったアプリでお風呂の中でで記事を書いています。)

f:id:jesus9387:20171002124757p:plain:w300:h500

仕事をしながら個人アプリを開発するにあたってやっていることを共有したいと思います。

迷うことを極力減らす

[自分を操る超集中]

この本の中で 「迷うことが疲れにつながる」とかかれていました。

仕事が終わって家に着き、自分のやりたいことができる時間ができたときに

「何から始めようかなー🤔」

と迷うことが疲れにつながり時間を無駄に消費してしまいます。

ですので自分は行きの電車や帰りの電車で帰ってからやることリストをトレロにまとめています。

f:id:jesus9387:20171002095648p:plain

このリストを作成するにあたって気をつけているのは優先順位の高い順で書くことです。 そうすることで、 パソコンを開いたら何も考えずリストの上から順に進めていけばいいだけというようにしています。

スキマ時間を有効活用

自分は基本的いつでも携帯を持っていて スキマ時間になったらやりたいことのためにアイデアを絞ったり、記事を書いたりしています。

電車の中や仕事の昼休みなど細切れの時間をまとめるとすごい時間なります。 これを有効活用するように考えています。

イデアはすぐにメモに書き出すこと。 頭の中のままにするとすぐ忘れます。

f:id:jesus9387:20171002125402p:plain:w300:h500

(メモの自分の作成しているアプリで記入しています。)

記事を書くときは画像など どうしてもパソコンのいる作業以外は携帯で済ませておくようにしています。

土日に大きな時間が取れるとは限らない

これは自分だけかもしれませんが 土日にたくさん時間が取れるとは限りません。

出かけたり、急な遊びの予定が入ったり、集中できなくてダラダラしてしまったりしてしまうかと思います。

ですので毎日コツコツ続けることが大事だと思います。

よければ

twitter.com

Railsの勉強がてらMarkdownでかけるメモアプリを作成した話

作成しました。

f:id:jesus9387:20170925215530p:plain

サイトはこちらになります。https://mysterious-wildwood-63267.herokuapp.com/

主な機能

  • ログイン

    • ログインはツイッターアカウントでログインできるようにしました
    • ログイン.gif
  • 投稿、編集

    • Markdownを書くと右側にパースした結果が表示されていきます。
    • 投稿.gif

  • 編集も可能です
  • 編集する.gif

  • 検索

    • ワード検索、日付検索、することが可能です。

使った技術

なぜ作ったか

Ruby on Railsがやりたかったからです。 これが一番の理由かもしれません。

他には

  • 自分はアプリ開発をメインで行っていますがこの機会にWebアプリケーションを作成してみていつもと違った視点を学びたかった
  • オールランダーな人間になれると思ったから(アプリ開発、サーバーサイド、APIの作成、Webアプリケーションをやったことがあるという経験)

上記のような理由でやってみました。

現在は

このWebアプリケーションを作ったという経験ができて満足してしまいました。笑 バグがたくさん内在しています笑 でも、あくまで「経験すること」を意識したのでもうこれでいいかなと思います。

また、今はiPhoneアプリを開発しています。 だいぶ完成に近づいてきていてもうすぐリリースかなというところです。

よければ

ソースコードは下記におきましたのでよければどうぞ https://github.com/yshogo/katana.mb

また、ツイッターもやっているのでよければフォローお願い致します。 https://twitter.com/yshogo87

AppleWatch series3を購入しました。

購入しました。

f:id:jesus9387:20170923002617j:plain:w300:h500

なぜ購入したのか

ロマンです。 ガジェット好きの血が騒いだからです。

デザイン

かなりいい感じ。

f:id:jesus9387:20170923002832j:plain:w300:h500

これから

Watchアプリの作成もしていきたいなと思います。 今考えているのはWatch から筋トレの記録を保存したらGoogleカレンダーに保存するようなものアプリを考えています。 その前に今作成しているメモアプリを完成させてリリースしなければ、、、

iOSDC 2017に参加したら最高だった

参加してきました!!!

f:id:jesus9387:20170918231155j:plain:w300:h300

感想

こういうのは初めて参加しましたが、とても楽しかったです! 自分の専門外の知識を得ることができ、周りにいる方もみんなプログラミングが好きそうな人たちが集まっていてかなり楽しかった!!

発表を聞いたもの

SwiftとKotlin

speakerdeck.com

この発表では主にSwiftとKotlinの違いや、設計思想のようなところを発表してくださいました。 業務ではAndroid開発をしていてKotlinもSwiftも書いている自分としてはかなり興味深かった。

個人の感想としてSwiftとKotlinは設計思想の根本から違うと考えています。 なぜかというとSwiftはObjective-cと同じC言語をベースとした設計思想で、 KotlinはJavaベースの設計思想ということにかなり違いがあると思います。 この話は別の記事にします。

Swift4.0対応しようとしたら大変な目に遭った話

speakerdeck.com

ライブラリをSwift4に対応しているという話です。 個人的に興味深かったのは「NotAutolayout」というライブラリです。 Autolayoutはかなり学習コストが高く私自身今現在かなり苦戦していますが、 「もう使わずにレイアウトはすべてコードで書こうぜ!」というライブラリです。

かなり興味深いですか、実行するまでレイアウトが見えないのはなかなか辛いものがあります。 結局Autolayout使うしかないのかな、、、

メルカリで実施した過去最大規模のABテスト「ドロワーvs下タブ」の舞台裏

speakerdeck.com

メルカリUS版ではドロワーと下タブでABテストをするためにこんな実装したよという話でした。 AppDelegateでレイアウトを管理するEnumを作成し、 そこからサーバーから返すデータによってレイアウトを分岐させていくようにしたとの説明がありました。

確かにこれだとABテストが終わったときファイルの削除が、Enumの削除で全てできるので便利だなーと思いました。

AutoLayoutと友達になる方法

speakerdeck.com

Autolayoutのコツみたいなものを紹介してくださいました。 制約の付け方、またその制約の確認方法などかなり勉強になりました。 自分のこれからの実装に生かしていきたいと思います。

初めて作るIoT機器とBLEの光と闇

これはIoT機器で受け取ったデータをiPadに送るということをやろうとしたらかなり大変だったとい話でした。 昔、自分が大学生のときにBLTを使った在室管理システムを作成したことがありそのとき問題だったのは他の BLT信号を同時にたくさんiPadが取得してしまうのが問題でした。 その辺はどのように対応しているのか質問しに行こうとAsk the speakerに行ったらもういなかった、、、、

また機会があればその辺の話もしたいな〜

発表を聞いて

来年こそは自分も発表したい! 決意を込めてこんなツイートをしました。

来年こそは!!!!!!!

最後まで読んでくださりありがとうございました。 よろしければツイッターのフォローよろしくお願いします。

twitter.com

1日のCommit数をツイートするAPIを作った話[Ruby on Rails]

作成したもの

こんな形で1日のCommit数をGithubから数えて自動でツイートするものを作成しました。

なんで作ったか

1日のコミット数をみて 「今日も頑張ったなー」っていって寝たいなーと思っただけです。

また、Mazの発表会?イベント?に参加して、なんか急にRubyをやりたくてはじめました。笑

bbg.connpass.com

そもそもこのAPIを作ることは自分の作りたいものリストの中に入っていてこの機会にやってみました!

使ったもの

開発期間

  • 1日

これから

現在は自分一人しか使えないようになっていますが、 下記のようなリプライをいただいたので誰でも使えるようなものに改良しています。

完成したらまた記事にしたいなーと思います。

また、完成したらTwiiterに投稿しますのでよければフォローお願い致します。

twitter.com