potatotips #32 (iOS/Android開発Tips共有会) に参加しました
8/23に、potatotipsに参加してきました potatotips.connpass.com
iOSブログまとめ枠で参加したので、iOSに関するTipsをまとめます。
ちなみにめっちゃオシャレな会場でとても素敵でした
iOS Tips
CocoaPods Carthage @JPMartha_jp
(資料が見つかりませんでした...)
- CocoaPodsとCarthageのお話
- SwiftPMが出てきて「どうなるのか...」って感じだけど、活発に活動してるし、Appleも協力する姿勢を示してるよ
メーリングリストでしっかり動向をウォッチしていて、すごいなーという印象。
すごい。
チーム開発にSwiftLintを導入してみた @ikamon
(資料が見つかりませんでした...)
- 開発メンバーが増えたのでLint導入してみた
- 最初素直にあててみたらめっちゃエラーとワーニングでた
- ルールをカスタムしたりした
- すぐ直せないものはTODOコメントやルール無効にしたりした
- さらにjenkinsでCIして、可視化してみた
すぐ直せないものにTODOコメント入れておく、みたいなのってすっごく重要ですよね。こういうのがチームに定着していくさまを見るのが好きです。
あとそれだけでなくjenkinsでCIして可視化とかすごい。
プロジェクト内のURLをAssociated Valuesで管理してみる @marty_suzuki
- 文字列によるURLの管理は文字列ミスったりしてツライので、Associated Values使って幸せになろう
QitaのAPI clientを作ったそうです。型安全に使えるとのことなので試してみたいなー。
サクッと作っちゃうところがすごい。
あとこれスター数やばい。
Realm 中心設計 @susieyy
- モバイル向けデータベースであるRealmを中心に、RxSwiftとMVVM、あとReduxにインスパイアされて考えた設計
- Realmは配列の差分index通知がすごくよさげ
- Like問題なんかに対応できる
キタ!設計のお話。設計の話は飽きませんな。
設計を考えて発表できるってことがすごい。
OnBoarding @akatsuki174
- ライブラリ漁りが趣味w
- OnBoardingは、ユーザーの第一印象を決め、ユーザーに価値を伝えられる大切なもの
- 離脱率も下げられるかも!
導入が簡単そうだなーという印象なので、使ってみたくなりました。
あとコダック可愛い
iOSアプリのライブラリ依存管理ツールとしてSwiftPMを使うのはまだしばらく先かなと思った話 @_mono
www.slideshare.net
- Carthage/CocoaPodsにとってかわるかと思ったけどサンプルが動かなかったり...
- 今はまだ早い感
- 実際触ってみたよ
いずれにしろAppleが作っているというアドバンテージは大きいと思うので、時間の問題かなーと思います。
それよりもAppleのサンプルにプルリク送ってマージされたのがすごい。
WWDC2016で話されたDependency Injectionを活用してリファクタリング @yoichitgy
- View ControllerはLEGOブロックなので自由に組み立てられるようにしよう、DIを使ってね
- 全てのView ControllerがApp Delegateに依存することを避けよう
- 古いプログラムとかで事情がある場合はprotocol使ってちょっとずつリファクタ
みんな大好きDIをSwiftで取り入れるお話。DI使うとテスト書きやすくなったりするんで有効に使いたいですね。
かなり英語に慣れてそうだったのがすごい。
おわりに
僕はまだ初心者ですが、とても勉強になりました。皆さんメーリングリストを用いて情報収集していることに衝撃を受けました..すごいぜ...マネしよう...
全体的にすごいしか言ってない気もしますがこれでまとめと致します。
美味しいお酒・食べ物と一緒に開催していただいた主催者の方や会場提供のWantedlyさん、その他関係者の方々に感謝デス!
ISUCON5でmy.cnfに遊ばれた
9月27日に、「Oishinbo」というチームでISUCON5に参加しました。
公式:ISUCON5まとめ
チームメンバーは以下のとおりです。
- @ktaro_w
- 全体
- @sota1235
- インスタンス含む環境構築、サーバー、アプリケーション
- @suxisuxido(僕です)
- データベース周り
事前準備/練習として、各々ISUCON4の問題で練習をし、その知見の共有をしました。
当日の流れ
10:00前に会社に集まって、貸切状態の会議室を使いました。
いざ始まると、@sota1235がせっせこインスタンスの準備とかしてくれて、その間に僕と@ktaro_wはレギュレーション読んだりしてました。
- 10:30 クーポン利用するアカウント間違える事件が発生。詳しくは@sota1235がブログ書いてくれると思います←
- 11:00 はじめてのベンチマーク、はたしか0点。インスタンスの設定ミスが原因でした。
- 11:30 インスタンスの設定を直し再度ベンチーマーク、300点ぐらいだったかな?
- 12:00 nginx、unicorn周りをごにょごにょしてベンチマーク、6点を出す
- 12:30 6点の原因を探す旅にでる。途中僕がアカウントのプロフィールを自分のものに変更したことが疑われる、悲しい。
- 13:00 みんなでとんかつを食べに行き、幸せになる。
- 13:30 unicorn起動時にproduction設定になっていなかったことが6点の原因だと判明、再度ベンチ走らせ一桁を脱出する
- 14:00 ~
my.cnf
と遊ぶに遊ばれる - 18:00 終了間近、最後のあがきでmysqlクライアントにて直接インデックスをはったりして結局最終スコアは1300点ぐらい
gitでmy.cnf
を管理しようとして/etc/my.cnf
にシンボリックリンクはったり/etc/mysql/my.cnf
にシンボリックリンクはったり色々やったけど設定反映されず。
この辺は当日やってる最中、意味がわからずただただ目が疲れました。
感想
というわけで感想としては、チームメンバー2人が幅広い知識であの手この手でチューニングを試みるなか、データベース周りに集中させてもらったにもかかわらずmy.cnf
の設定すら反映させられなかったのが申し訳なかったです。
あとはISUCON4で練習したといっても、その環境とちょっと違うだけでこんなに手も足も出なくなるんだと、知識が紐付いてないことを実感しました。
ただイベント自体はとても楽しかったです。6点出したときとか、6点から脱出したときとか、最後のあがきでちょっとずつスコアが上がったときとか、めちゃめちゃ盛り上がりました。
来年こそは...!! 絶対にmy.cnf
を反映させるんだ!
MacOSXでMySQLクライアントのmycliをインストールする
mycliとは
公式:mycli
シンタックスハイライトとか補完がイケてるMySQLクライアントです
環境
install
公式githubに書いてあるとおりMacOSXなら下記コマンドで簡単にインストールできます
$ brew update $ brew install mycli
※Homebrewがない人はこちら Homebrew
使い方
標準のMySQLクライアントと同じです
$ mysql -u root -p
などの代わりに
$ mycli -u root -p
でMySQLに接続できます
補完がマジ素晴らしいです
余談(Access deniedの解決策)
ちなみに余談ですがrootで接続を試みる際、
Access denied for user ‘root’@’localhost’ (using password: NO)
が出てきて接続できなかったので、下記コマンドで初期設定をしてやりました。
$ mysql_secure_installation
初期設定の過程でいくつか聞かれますが、基本的に全てY(Yes)で答えてオッケーです。
※詳しい解説はこちら CentOS7にmysqlを導入し初期設定までやってみた
まとめ
- インストール簡単
- 補完いい
- 色付くのいい
- データベース触るの楽しくなる(かも)