子育てエンジニアとして成長するために2015年を振り返ってみる

「MoneyForward Advent Calendar 2015 - Qiitaの19日目」の記事です。 子育てとエンジニアという視点で今年を振り返ってみたいと思います。 今年は占いによると僕は良い年らいしいのですが、気づけばもう終わろうとしている。。何が良かったのか、マネーフォ…

プロジェクト内で README を有効に使う

プロジェクトが大きくなるにつれてドキュメントの重要性は増していきます。特にベンチャー企業では、スピード重視でドキュメントを残すよりも開発ばかりに重点が置かれてしまうこともあるかと思います。企画が決まり、じゃ開発、リリースこの日にしようみた…

Good By NSLog ~ CocoaLumberjack 2.x.x ~

ios

CocoaLumberJack iOS には CocoaLumberJack というログライブラリがあります。Java でいう Log4J のようなものです。ログの出力レベルがあり、コンソールやファイルにログを出力できます。もちろんログフォーマットも自由にカスタマイズできます。このライブ…

アプリケーションフレームワークの選定

今開発しているアプリのリニューアルをするにあたり、サーバサイドのフレームワークの選定が必要となりました。色々考えた結果、Spring boot に決めたのでその経緯をずらずら書いていこうと思います。 なぜリニューアル? 一般的にシステムの寿命は長くて5年…

iOS push 通知からブラウザ起動させる際に注意すること

push 通知からダイレクトにブラウザを起動させたとき、アプリが10秒くらい固まった後にようやくブラウザが起動する問題が起こりました。どうやら、Application Delegate の didReceiveRemoteNotification(※) や didFinishLaunchingWithOptions で [UIApplica…

AFNetworking 2.xで画像アップロードと画像参照

iOS でサーバ通信する際、多くの iOS アプリで AFNetworking が利用されています。ここでは AFNetworking の AFHttpSessionManager を使って画像のアップロードと参照を行います。 画像アップロード AFHTTPSessionManager *manager = [AFHTTPSessionManager …

HipChat で CI する

チャットツールと CI ツールを連携させることでより柔軟な運用を行えます。例えば、HipChat から Jenkins のジョブを実行し、その結果を HipChat に通知させる。日々、チーム内のコミュニケーションツールの1つとして利用しているチャットツールから CI でき…

Hubot と HipChat で ChatOps

ここ最近、ChatOps というワードをよく耳にするようになりました。ChatOps の取り組みを行うにあたっての1つの手段として Hubot があります。Hubot については色々なサイトに記載されています。 GitHub社謹製! bot開発・実行フレームワーク「Hubot」:連載…

requests と beautifulsoup でバス時刻表を取得する

Python ライブラリの requests と beautifulsoup を使って自宅の最寄りにあるバス停の時刻表を取得してみました。これまでバスはめったに乗らなかったのですが、場所によってはバスの方が便利なことが多いなと気付き始めました。そんなこともあって、バス会…

iOS アプリ 開発環境まとめ

ios

iOS アプリの開発環境周りは複雑ですよね。色々手順があり、なかなかつながりが見えにくかったりします。特に僕は iOS Dev Center とのやり取りを理解するまでは時間がかかりました。 キーチェーン ? 証明書 ? プロビジョニング ? .p12 ? そこで、まだ理…

iTunes Connect での submit エラー

iOS8 対応の申請が無事完了しました。iTunes Connect の UI も変更され、申請手順も少し変わっています。そこでいくつかエラーに遭遇したのでまとめておきます。 バイナリアップ 〜 レビュー審査のために送信 これまでは iTunes Connect に「Ready to Upload…

shenzhen コマンドで .ipa ファイルを作成する

ios

shenzhen コマンドとは gem に含まれる iOS プロジェクトのビルド、パッケージング用ライブラリです。TestFlight へのデプロイ機構も持ちます。 読み方は シンセン。 準備 gem に含まれていますので、ruby がインストールされていることが必須です。 rvm の…

.ipa ファイルを自動生成する

ios

.ipa ファイルを作るにはいくつか方法があります。 Xcode で作成 xcrun コマンド shenzhen コマンド TestFlight を利用 など。Xocde6 beta5 で ipa ファイルを作成しようとしたところ、Archive は問題なく通るのですが、その後 Export しようとすると「権限…

Xcode6 beta版での Row Height について

ios

storyboard を使って TableView を組んでいた箇所で iOS8 では TableView の Cell がうまく表示されないことが起きました。問題なく表示されているところもあるのですが、ダメなところはいっさいダメな状況でした。表示できるところとできないところの差分を…

対症的療法と根本的療法

つい最近企画について学ぶ機会がありました。普段はエンジニアとしてサービスの開発をしていて、ごりごりコードを書いているのですが、ユーザにサービスを届ける立場として開発だけではなくそこに +α として”企画”という部分をより知っていこうと今学んでい…

IBAction の設定で少しはまったこと

iOS 開発で storyboard や xib を使ってレイアウトを組むことは一般的です(まぁ複雑なレイアウトを組むときは除いて)。自分も基本的にはこれらを使ってレイアウトを組んでいます。仕事で iOS 開発をしていたとき、カスタムセルを作る必要があったので、い…

casperjs で iTunesConnect からアプリのダウンロード数をスクレイピングしてみた

以前、 Sales and Trends からダウンロード数を出力というタイトルで iTunesConnect からアプリのダウンロード数を取得する方法について書きました。Apple 謹製のスクリプトを使っているのですが、フィルタリングが弱く柔軟に好きな情報を取得できない。何か…

vagrant + java + tomcat

ローカル環境に vagrant で仮想環境を作り、tomcat 上で java アプリケーションを動かしてみる。今の業務での開発はローカルで開発→検証環境へアップ→リリースという流れが主です。ここで、”ローカルで開発→検証環境へアップ”という部分で、そもそもローカル…

FMDB でカラムの存在確認

iOS 開発でローカル DB を操作する際に利用できる FMDB について紹介していきます。 自分が開発しているアプリでは FMDB ではなく社内のライブラリを使って DB 操作を行っています。ただそのアプリのローカル DB のテーブルにカラムを追加する必要があり、す…

オブジェクト生成時の*とは

Objective-C や C でオブジェクト生成時に"*"を付けます。普段当たり前のように利用しているため何の疑問もなく付けていますが、このケースに限らず自分の中で当たり前に習慣化していることについて質問や説明を求められたとき、「あれっ、そういえば」と思…

Sales and Trends からダウンロード数を出力

iOS アプリをリリースし、その後ダウンロード数をチェックしたいときには itunes connect の Sales and Trends にて確認することができます。ここで、累計ダウンロード数や月ごと日ごとのダウンロード数を簡単に確認できたり、CSV や Excel にエクスポートも…

コンテナ型仮想化 Docker

前々回のエントリーで Immutable infrastructure について触れた際、それを実現するための技術である Docker というワードを出しました。今回はその Docker について触れたいと思います。 Dockerとは コンテナ型仮想環境を簡単に管理し利用することのできる…

Java 差分リリース時に注意したいこと

ちょっとした修正をしてリリースする場合、「修正ファイルも1、2ファイルのだから差分リリースでしよう」という事で修正した class ファイルのみリリースした経験がある方も多いのではないでしょうか?また、別案件が並行で開発が進んでおりそれに影響が出な…

最近のインフラ系技術が興味深い 〜Blue Green DeploymentとImmutale Infrastructure〜

これまでは Javascript を中心としたクライアントサイドの技術が結構活発でしたが、去年あたりからインフラ周りの技術の流れがおもしろく、興味深いなと感じています。特にタイトルにも書いてある Immutable Infrastructure は最近は話題に上がることも多い…

Apache HttpClient4

java での http 接続を行いました。やったことは画像のバイナリーデータを受け取って対象のサーバへ http で post します。 久々に触れたら3系は非推奨で3系と4系では結構インターフェースも変わっていました。検索しても以外と4系の情報って少ないんですね…

openpyxl モジュールで excel 操作

excel で1年間のカレンダーを作成する必要があったので、python でスクリプト書いて作成してみました。やることとしては、すでに用意されている excel テンプレートを読み込み、そのテンプレートに1月から12月のカレンダーを作成していきます。欲しい年をス…

Genymotion が便利

Genymotion を使ってみました。これは便利。今まで開発時に非効率だと感じていた部分を解消してくれます。 開発時に動作確認の方法として、Android エミュレータを使ったり、実機に繋いで確認したりと方法はありますが、エミュレータは立ち上がりが遅く、と…

android エミューレータで local 開発サーバにアクセス

アプリ開発する際、外部サーバにアクセスし情報を取得したいことはよくあると思います。最近、異動し業務でアプリ開発に触れる機会が増えてきているのですが、昔からの風習?? で1機能を実装するのに「アプリを開発する人」、「サーバ側を開発する人」という…

vagrant で仮想サーバ構築

vagrant について触れてみたので基本的な使い方をまとめてみました。 vagrant とは 仮想の開発環境を簡単に構築、配布できる開発環境作成ツール。例えば、開発環境を構築する際に「○○の環境では動いているけど、xxの環境では動かない」なんてことで、その問…