小さなチーム大きな仕事-書評
読んだので書評として残して起きます。
とにかく無駄なものは排除
この本では仕事の中にある無駄に削ぎ落とすと小さなチームで十分ではないかということを説いた本だと私は思います。
例えば
一時間かかる会議を設定し、 参加者を一〇人召集したとしよう。 これは実際には一時間の会議ではなく 一〇時間の会議である
会議を大人数ですることで時間が失われます。 その分生産性が失われて人が足りないと錯覚してしまいます。
なので会議はなくす、もしくは極力少なくすることが大事だと書かれていました。
誰かに話しかけること自体に相手の時間を奪うことと同じとも書かれておりました。
どうしても何か聞きたいことなどはチャットを使うことが私は有効だと思います。
モニターから目を離さずに質問などすることができるので集中力を切らさないことができると私は考えています。
すごい製品や、サービスを作る秘訣
これからビジネスをはじめようとか、はじめたい方へのアドバイスも書かれていました。
すごい製品やサービスを 生み出す最も単純な方法は、 あなたが使いたいものを作ることだ。
この考え方ってすごく大事だな〜と思っていて、自分が個人開発するときは全てこの基準でソースコードを書いています。
今この記事を書いているエディタも自分で開発したツールです。
近々リリース致しますのでよければダウンロードおねがい致します。(無料です)
顧客の言うことを聞いていたら、 もっと速く走る馬を彼らに与えていただろう ヘンリー・フォード
顧客の言うことを聞きすぎるのはよくないとをいっていると私は解釈しました。
自分の尊敬するApple社はいつもこの考え方をしてると私は思っています。
MacにUSBを取り去ってUSB-Cに変えて批判を受けても、今一番売れているノートパソコンはMacbookproです。
自分の中の何かしら信念を持って製品を作り続けるということはかなり重要な考え方だと私は思います。
注文の多い少数の顧客を幸せにするために 多くの人に迷惑をかけ、 商品を台無しにしてしまうのは良くない。
注文の多い顧客に対してあれこれカスタマイズして疲弊するのはその製品自体をどんどん悪くするのと同じだと解釈しました。
業務でこういうことを経験したことがあってかなりぐさっときました。
## 商品リンク
よろしければ
ブログ更新したらツイートしたりしていますのでよろしければフォローお願い致します。
マネーフォワードのような横スワイプでタブを切り替えできるライブラリXLPagerTabStripを使ってみた
横スワイプで画面を切り替えれるかっこいいアニメーションを導入したくてライブラリを導入したのでメモとして残しておきます。
今回導入するのはこちらです。
かっこいいですね。
Install
Cocoapodsから導入できます。 Cocoapodsを入れてない場合は導入してください。 (導入方法はググればたくさんでてきます)
Podfileに下記を追加
pod 'XLPagerTabStrip'
追加したPodFileを保存し、下記を実行
pod install
管理元ViewControllerと切り替えるViewControllerを作成する
ルートのViewControllerと切り替え用のViewControllerを作成する
次に、切り替え用のViewControllerそれぞれにStoryboardIDを設定してください
(もうひとつの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を追加してください。
CollectionView:切り替えタブ表示エリア ScrollView:表示するViewエリア
となります。
Storyboardの設定
CollectionView、ScrollViewそれぞれに下記の操作をおこなってください。
CollectionViewもしくはScrollViewを右クリック→Referencing outletのNew Reference outletをドラッグして 親のViewControllerにカーソルを当てる→containerViewを選択
実行してみる
カスタマイズ
下記の部分を変更することでタブをカスタマイズすることができます。
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に書かれていますのでここをご覧ください。
サンプルは下記にありますのでよければどうぞ
よろしければツイッターもフォローお願いします
時間がないを言い訳にしないためにしていること
エンジニアたるもの勉強をし続けることが大事だとネット上で言われ続けています。
これについては賛否両論あるかと思いますが個人的にMarkdownでかけるメモアプリを開発しています。 (この記事も自分で作ったアプリでお風呂の中でで記事を書いています。)
仕事をしながら個人アプリを開発するにあたってやっていることを共有したいと思います。
迷うことを極力減らす
[自分を操る超集中]
この本の中で 「迷うことが疲れにつながる」とかかれていました。
仕事が終わって家に着き、自分のやりたいことができる時間ができたときに
「何から始めようかなー🤔」
と迷うことが疲れにつながり時間を無駄に消費してしまいます。
ですので自分は行きの電車や帰りの電車で帰ってからやることリストをトレロにまとめています。
このリストを作成するにあたって気をつけているのは優先順位の高い順で書くことです。 そうすることで、 パソコンを開いたら何も考えずリストの上から順に進めていけばいいだけというようにしています。
スキマ時間を有効活用
自分は基本的いつでも携帯を持っていて スキマ時間になったらやりたいことのためにアイデアを絞ったり、記事を書いたりしています。
電車の中や仕事の昼休みなど細切れの時間をまとめるとすごい時間なります。 これを有効活用するように考えています。
アイデアはすぐにメモに書き出すこと。 頭の中のままにするとすぐ忘れます。
(メモの自分の作成しているアプリで記入しています。)
記事を書くときは画像など どうしてもパソコンのいる作業以外は携帯で済ませておくようにしています。
土日に大きな時間が取れるとは限らない
これは自分だけかもしれませんが 土日にたくさん時間が取れるとは限りません。
出かけたり、急な遊びの予定が入ったり、集中できなくてダラダラしてしまったりしてしまうかと思います。
ですので毎日コツコツ続けることが大事だと思います。
よければ
- ツイッターのフォローお願い致します。
Railsの勉強がてらMarkdownでかけるメモアプリを作成した話
作成しました。
サイトはこちらになります。https://mysterious-wildwood-63267.herokuapp.com/
主な機能
- 編集も可能です
検索
- ワード検索、日付検索、することが可能です。
使った技術
- 言語:Ruby
- フレームワーク:Ruby on Rails
- marked.js ( https://github.com/chjj/marked )
- Materialize ( http://materializecss.com/ )
なぜ作ったか
Ruby on Railsがやりたかったからです。 これが一番の理由かもしれません。
他には
- 自分はアプリ開発をメインで行っていますがこの機会にWebアプリケーションを作成してみていつもと違った視点を学びたかった
- オールランダーな人間になれると思ったから(アプリ開発、サーバーサイド、APIの作成、Webアプリケーションをやったことがあるという経験)
上記のような理由でやってみました。
現在は
このWebアプリケーションを作ったという経験ができて満足してしまいました。笑 バグがたくさん内在しています笑 でも、あくまで「経験すること」を意識したのでもうこれでいいかなと思います。
また、今はiPhoneアプリを開発しています。 だいぶ完成に近づいてきていてもうすぐリリースかなというところです。
よければ
ソースコードは下記におきましたのでよければどうぞ https://github.com/yshogo/katana.mb
また、ツイッターもやっているのでよければフォローお願い致します。 https://twitter.com/yshogo87
AppleWatch series3を購入しました。
購入しました。
なぜ購入したのか
ロマンです。 ガジェット好きの血が騒いだからです。
デザイン
かなりいい感じ。
これから
Watchアプリの作成もしていきたいなと思います。 今考えているのはWatch から筋トレの記録を保存したらGoogleカレンダーに保存するようなものアプリを考えています。 その前に今作成しているメモアプリを完成させてリリースしなければ、、、
iOSDC 2017に参加したら最高だった
参加してきました!!!
感想
こういうのは初めて参加しましたが、とても楽しかったです! 自分の専門外の知識を得ることができ、周りにいる方もみんなプログラミングが好きそうな人たちが集まっていてかなり楽しかった!!
発表を聞いたもの
SwiftとKotlin
この発表では主にSwiftとKotlinの違いや、設計思想のようなところを発表してくださいました。 業務ではAndroid開発をしていてKotlinもSwiftも書いている自分としてはかなり興味深かった。
個人の感想としてSwiftとKotlinは設計思想の根本から違うと考えています。 なぜかというとSwiftはObjective-cと同じC言語をベースとした設計思想で、 KotlinはJavaベースの設計思想ということにかなり違いがあると思います。 この話は別の記事にします。
Swift4.0対応しようとしたら大変な目に遭った話
ライブラリをSwift4に対応しているという話です。 個人的に興味深かったのは「NotAutolayout」というライブラリです。 Autolayoutはかなり学習コストが高く私自身今現在かなり苦戦していますが、 「もう使わずにレイアウトはすべてコードで書こうぜ!」というライブラリです。
かなり興味深いですか、実行するまでレイアウトが見えないのはなかなか辛いものがあります。 結局Autolayout使うしかないのかな、、、
メルカリで実施した過去最大規模のABテスト「ドロワーvs下タブ」の舞台裏
メルカリUS版ではドロワーと下タブでABテストをするためにこんな実装したよという話でした。 AppDelegateでレイアウトを管理するEnumを作成し、 そこからサーバーから返すデータによってレイアウトを分岐させていくようにしたとの説明がありました。
確かにこれだとABテストが終わったときファイルの削除が、Enumの削除で全てできるので便利だなーと思いました。
AutoLayoutと友達になる方法
Autolayoutのコツみたいなものを紹介してくださいました。 制約の付け方、またその制約の確認方法などかなり勉強になりました。 自分のこれからの実装に生かしていきたいと思います。
初めて作るIoT機器とBLEの光と闇
これはIoT機器で受け取ったデータをiPadに送るということをやろうとしたらかなり大変だったとい話でした。 昔、自分が大学生のときにBLTを使った在室管理システムを作成したことがありそのとき問題だったのは他の BLT信号を同時にたくさんiPadが取得してしまうのが問題でした。 その辺はどのように対応しているのか質問しに行こうとAsk the speakerに行ったらもういなかった、、、、
また機会があればその辺の話もしたいな〜
発表を聞いて
来年こそは自分も発表したい! 決意を込めてこんなツイートをしました。
貼りました〜。来年こそは自分も発表したい#iosdc pic.twitter.com/81NWi0Fdyg
— shogo.yamada (@yshogo87) 2017年9月17日
来年こそは!!!!!!!
最後まで読んでくださりありがとうございました。 よろしければツイッターのフォローよろしくお願いします。
1日のCommit数をツイートするAPIを作った話
作成したもの
今日はGithubに10回commitしました。 https://t.co/3Uu7JyBwBh
— shogo.yamada (@yshogo87) 2017年9月10日
こんな形で1日のCommit数をGithubから数えて自動でツイートするものを作成しました。
なんで作ったか
1日のコミット数をみて 「今日も頑張ったなー」っていって寝たいなーと思っただけです。
また、Mazの発表会?イベント?に参加して、なんか急にRubyをやりたくてはじめました。笑
そもそもこのAPIを作ることは自分の作りたいものリストの中に入っていてこの機会にやってみました!
使ったもの
開発期間
- 1日
これから
現在は自分一人しか使えないようになっていますが、 下記のようなリプライをいただいたので誰でも使えるようなものに改良しています。
良さそう!使いたいです!
— K-BOY@筋肉エンジニア (@kboy_silvergym) 2017年9月9日
完成したらまた記事にしたいなーと思います。
また、完成したらTwiiterに投稿しますのでよければフォローお願い致します。