タグ

ブックマーク / blog.fenrir-inc.com (27)

  • iOS ビルド環境を Jenkins と Docker と Ansible でコード化する(実際のコード付き)

    こんにちは。アプリケーション共同開発部の門多です。 昨年の終わり頃に、 Mac mini 増殖中!iOS アプリのビルドをマスター・スレーブ化して時間を短縮するという pixiv さんの記事がありましたが、フェンリルの共同開発事業アプリ開発でも、2012 年ごろから Jenkins を使ったビルドを行っています。 なるべく多くの人に使ってもらえるように、基的に制限しない運用を行なっていました。しかし数年経ってみると、OS やビルド環境の変化もありましたし、現在の構成が色々と問題を起こしていることもわかってきました。現在ビルド環境の改善を行っているので、ついでに Keychain 管理の自動化や Xcode 自動インストールなど、これまで経験した色々な問題とその対応方法をまとめました。かなり長い記事になってしまいましたが、実際に使っているプログラムをそのまま掲載していますので、そのうち一部

    iOS ビルド環境を Jenkins と Docker と Ansible でコード化する(実際のコード付き)
    invent
    invent 2020/06/07
  • iOS 11 で Safari View Controller の Cookie 等の共有機能が無くなる (予定)

    こんにちは、アプリケーション共同開発部の中澤です。 iOS 9 から登場した Safari View Controller (SFSafariViewController) は、 Cookie 等のデータが Safari と共有される Web ビューとして認知されています。 この仕様によって各種 Web サービスのログイン状態等も共有され、それによってユーザーはそれぞれのアプリで認証が容易になっていました。 しかし、 iOS 11 ではその仕様が変わり、 Safari や各 iOS アプリで表示される Safari View Controller は、Cookie やローカルストレージ等データをそれぞれ別の場所に保存するようになると、 WWDC 2017 にて発表されました。 以下、その発表があった What’s New in Safari View Controller からの引用です。

    iOS 11 で Safari View Controller の Cookie 等の共有機能が無くなる (予定)
    invent
    invent 2017/07/07
  • iOS 10 で追加される Proactive Suggestions の魅力

    こんにちは。アプリケーション共同開発部 開発担当の図子です。 次期 iOS の iOS 10 がもうすぐリリースされるであろうこの時期、iOS アプリケーションエンジニアのみなさんはいかがお過ごしでしょうか。私はこちらのエントリでも書かせていただいたように今年も WWDC に参加して現地でいろんなセッションを見ました。WWDC から帰国したあともセッションビデオをいくつか見ました。そのなかで個人的におもしろいなぁと思った "Proactive Suggestions" について紹介します。 Proactive Suggestions とは何か Proactive とは辞書によると "先を見越した"、"先回りした" という意味です。Suggestion は "提案"、"忠告" です。つまり Proactive Suggestions とは "先回りした提案" という意味になります。 Proa

    iOS 10 で追加される Proactive Suggestions の魅力
    invent
    invent 2016/09/11
  • グッと来た IT 関連書籍をまとめてみた

    こんにちは。ウェブ共同開発部エンジニアの有田です。 この記事は Fenrir Advent Calendar 2015 の 18日目の記事です。 自宅から電車で通勤していますが最近その合間にを読む機会が増えました。「2015 年にグッときたコレ」を紹介するということで、今回は私の 2015 年にグッときた IT 関連書籍を紹介します。 ドラッカーさんに教わった IT 技術者が変わる 50 の習慣 こちらは「IT エンジニアに読んでほしい!技術書・ビジネス書大賞」のビジネス部門でベスト 10 に入ったなので手に取ったことのある方もいるのではないでしょうか。 タイトルにもあるドラッカーのお話ですが、要所要所にしか出てこないのでドラッカーと聞いて身構える必要もありませんでした。元々のドラッカーの書籍は IT 技術者の方には少々とっつきにくい部分があるかと思いますが、こちらのではIT 技術

    グッと来た IT 関連書籍をまとめてみた
    invent
    invent 2015/12/19
  • マテリアルデザインのガイドラインが最高に実践的だった

    「2014年にグッときたコレ」がテーマになる Fenrir Advent Calendar 2014 の24日目です。 マテリアルデザイン デザイナーの大西です。マテリアルデザインそのものへの記事は既に多くの方々が取り組まれているので、少し目先を変えてガイドラインについてです。 このガイドラインが最高に実践的でグッときました。 UIUXについてのガイドラインは面白くて勉強にもなるのですが、理解して実践するところにまで到達するのには中々のエネルギーを使いませんか? マテリアルデザインは英語のドキュメントなので最初は尻込みしましたが、読み進めるうちに内容の充実っぷりに引き込まれました。ここまで親切なガイドラインは珍しいと思います。和訳も欲しいところですが、用例として画像がたくさん挙げられているので翻訳サイトを使えば充分理解できると思います。 豊富なテンプレートと素材 750種類以上のアイコン

    マテリアルデザインのガイドラインが最高に実践的だった
    invent
    invent 2014/12/25
  • フェンリルプロダクト技術勉強会を開催しました

    こんにちは! 昨日、入社 7 年目を迎えました共同開発部 開発担当の図子です。 Fenrir Advent Calendar 2014 の 5 日目を担当します。 私の「2014 年にグッときたコレ」というか 2014 年に 1 番緊張したのが一昨日弊社で開催された「フェンリルプロダクト技術勉強会」でのプレゼンです。 当日私から発表させていいただいた「iOS アプリのチーム開発における自動化」の内容と「フェンリルプロダクト技術勉強会」の様子をご紹介させていただきます。 フェンリルプロダクト技術勉強会 Fenrir Advent Calendar 「2014年にグッときたコレ」の1日目を担当した 金内 が中心となり、フェンリルで開発しているプロダクトに関する技術についてお話させていただき、フェンリルのことをもっと知っていただくために開催されました。アジェンダは以下の通りです。 Sleipni

    invent
    invent 2014/12/05
    フェンリルプロダクト技術勉強会を開催しました via @fenrir_official
  • NSProxy を使って UIWebView のイベントハンドリングをフックする

    こんにちは。開発担当の福井です。 突然ですが、みなさん NSProxy をご存じでしょうか? NSProxy は Foundation の中で唯一 NSObject を継承しないクラスです(NSProxy のサブクラスを除く)。 また、その実装はほとんどありません。 今回はその NSProxy を使って view に対するメソッド呼び出しをフックしてみようというお話です。 NSProxy の使い方 名前からも推測できるように、NSProxy は Proxy パターンを実現するためのクラスです。 メッセージの呼び出しが動的に解決される Objective-C において Proxy オブジェクトを実現するのは実に簡単です。 NSProxy は、ただ自身に送られたメッセージを、そのまま別のオブジェクトに受け流すことで Proxy としての機能を実現します。 Proxy オブジェクトを作ってみる

    NSProxy を使って UIWebView のイベントハンドリングをフックする
    invent
    invent 2013/11/20
  • Jenkins にすべてのプラグインを入れたらどうなるか

    こんにちは、開発担当の松です。 継続的インテグレーションサーバの Jenkins の 400 以上のプラグインを全部入れてみたらどうなるのかを調べてみました。 なお、クリックで開く画像はサイズが大きいのでモバイル環境で開くと危ないかもしれません。サーバにも優しくないのでなるべく画像をクリックしないようお願いします。 最近、 WEB+DB PRESS Vol.67 に開発者である川口さんの記事があったり、カエルが翻訳されたり、先週は楽天で勉強会があったりと、Jenkins はいろいろ話題になっていますね。 Jenkins を使っていて便利だと感じるのは豊富なプラグインでいろいろ拡張できて、それが設定ページから簡単にインストールできること。よさげなプラグインを手当たり次第インストールしてみたりした結果、社内の Jenkins サーバには約 40 個のプラグインが入っています。 Jenkin

    Jenkins にすべてのプラグインを入れたらどうなるか
    invent
    invent 2013/11/10
  • Google Cloud Platform の注目サービス

    こんにちは、フェンリルの真谷(シンガイ)です。 前回 Google App Engine 関連で、 こういう記事を書いて、1年と半年近く過ぎました。 当時書いた時点では特に記述は無かったのですが、Google App Engine は現在 Google Cloud Platform というプラットフォームの一部となっています。 個人的に Google App Engine はずっと追いかけていますが、今回は Google App Engine の新サービスや Google Cloud Platform の注目しているプロジェクトを紹介していきます。 Google App Engine for PHP (GAE/PHP) Google App Engine では、今まで PythonJavaGo と3言語をサポートしていましたが、なんと PHP がサポートされる事になりました。 と言って

    Google Cloud Platform の注目サービス
    invent
    invent 2013/08/07
    Google Cloud Platform の注目サービス (フェンリル | デベロッパーズブログ)
  • Jenkins がもっともっと便利になるプラグイン 8 つ

    こんにちは、開発担当の松です。 前回のプラグイン紹介記事がわりと反響があったようですので、今回も便利プラグインをいくつか紹介します。 好みのテーマに変更できる: Simple Theme Plugin 左下のいつも出ている執事の顔が気になってくる人は多いと思います。 そんなときにはこのプラグイン。CSSJavaScript を挿し込むだけの単純なプラグインながらその効果は絶大です。 利用するには、プラグイン導入後に Jenkins の管理 → システムの設定 → theme に追加する CSS と JS を指定するだけです。 プラグインのページにはサンプルのCSSファイルも用意されています。 とりあえず、執事の顔を消したいだけなら CSS に次のように記述すればよいです。 #main-table { background-image: none !important; } ページの

    Jenkins がもっともっと便利になるプラグイン 8 つ
    invent
    invent 2013/07/27
    Jenkins がもっともっと便利になるプラグイン 8 つ (フェンリル | デベロッパーズブログ)
  • NSString#rangeOfString: と CFStringFind ではデフォルトのオプションが違う

    こんにちは、Sleipnir for Mac 開発担当の宮です。 先ほど、CFStringFind を使うと文字列検索が速いよという記事を書いたのですが、速さの違いはオプションによるもののようです。 Twitter での、開発者さんたちの反応でわかりました。勉強になります! rangeOfString:options: には NSLiteralSearch というオプションが、CFStringFindWithOptions には kCFCompareNonliteral というオプションがあります。 それぞれ逆のことを意味するオプションがあって、デフォルト値が逆になっているわけです。 (rangeOfString:Options:) + (NSLiteralSearch) = (CFStringFind) (rangeOfString:) = (CFStringFindWithOptio

    NSString#rangeOfString: と CFStringFind ではデフォルトのオプションが違う
    invent
    invent 2013/04/15
    NSString#rangeOfString: と CFStringFind ではデフォルトのオプションが違う (フェンリル | デベロッパーズブログ)
  • 【Objective-C】 文字列検索するなら、NSString の rangeOfString: より CFStringFind を使うべき(検証)

    こんにちは、Sleipnir for Mac 開発担当の宮です。 前回「Sleipnir for Mac のパフォーマンスを大幅に改善するためにしたこと」という記事で、rangeOfString: より CFStringFind を使ったほうがいいよと書きました。 今回は、実際にパフォーマンス計測してみてどのくらい違うかを調べてみます。 (追記)なぜパフォーマンスに違いがでてくるか判明したので、別の記事を書きました。 => NSString#rangeOfString: と CFStringFind ではデフォルトのオプションが違う 計測について ・環境: iMac (Mid 2011), 2.7GHz Intel Core i5 ・文字列の最後の5文字を探す ・1万回の検索にかかる時間の10回平均 ・大文字小文字を区別するプションを引数で渡すかどうかで結果が違うのでそれぞれ計測 ・サン

    【Objective-C】 文字列検索するなら、NSString の rangeOfString: より CFStringFind を使うべき(検証)
    invent
    invent 2013/04/15
    【Objective-C】 文字列検索するなら、NSString の rangeOfString: より CFStringFind を使うべき(検証) (フェンリル | デベロッパーズブログ)
  • [追記あり] Android 開発で気をつけたいこと 〜変数名と Context について〜

    2016年5月27日追記 こんにちは。共同開発部 開発担当の戸澤です。 2012年に書かれた以下の記事内容に関しては、ApplicationContextの使用を推奨する点で不適切であるとご指摘をいただいています。 詳しくは http://ytrino.hatenablog.com/entry/2016/05/26/033936 をご覧ください。 誤解を招かないよう、この追記分ではみなさんのご指摘を踏まえた Context の使い方について追記しています。オリジナル記事は後半に残しています。みなさまのご指摘に感謝します。 Contextの使い方 AndroidにおけるApplicationContextとActivityContextの使い分けについてですが、 Application全体のライフサイクルでcontextに依存する必要がある処理以外は、基的にActivityContextを

    [追記あり] Android 開発で気をつけたいこと 〜変数名と Context について〜
    invent
    invent 2013/04/05
    Android 開発で気をつけたいこと 〜変数名と Context について〜
  • 成果の上がるUI/UXをデザインする為にはリサーチが大切であるという話

    こんにちは、坪内です。 先日、新たにスマートフォンアプリ向けにUI/UXリサーチ・デザイン事業を始めますよ、というプレスリリースを配信させていただきました。日経産業新聞さんや Cnet さんにも記事を載せていただきました。 企業のスマートフォンアプリ開発におけるUI/UX面の課題や問題点を抽出し、改善していくという言わばスマートフォンアプリのデザイン・コンサルティングのような事業です。この事業では、ユーザビリティテストやグループインタビュー、ビジネスコンテキスト調査、その他ありとあらゆるリサーチ手法を駆使しながら、徹底したユーザー視点で、ユーザーの満足をデザインするサポートを行います。 UI/UXリサーチ・デザイン事業は、 Sleipnir Mobile の開発運用やスマートフォンアプリの共同開発事業の経験で得たノウハウを余すことなく取り入れた、専門的なリサーチ・デザインサービスです。その

    成果の上がるUI/UXをデザインする為にはリサーチが大切であるという話
    invent
    invent 2013/02/17
    成果の上がるUI/UXをデザインする為にはリサーチが大切であるという話 (フェンリル | デベロッパーズブログ)
  • iTunes Connect に自動ログインして情報を取得する

    こんにちはこんにちは! エンジニア川端です。 プロダクトの開発ではなく、裏方的なことをやってます。 今日は、普段私が担当している、表に出てこないお話をさせてください。 iPhone アプリ開発者の方にはおなじみの「iTunes Connect」。 App Store で公開するアプリケーションを申請したり、公開日を設定したり、iPhone アプリに関する色んなことができるサイトですが、公開後のダウンロード数の確認などでアクセスすることが多いのではないでしょうか。 ログインして情報を得て、関係者に回覧して……毎日十数分の作業とはいえ、来やるべきこと (情報を材料に、次の計画をたてる等) に注力したい。なんとかならないかな。 「やりましょう!」 やりたいことは、ダウンロード数等の日時集計レポート CSV をダウンロードすることです。 「Sales Report」をクリックするとダウンロードで

    iTunes Connect に自動ログインして情報を取得する
    invent
    invent 2012/12/03
    iTunes Connect に自動ログインして情報を取得する (フェンリル | デベロッパーズブログ)
  • [Infographic] Pinterest にハマっちゃう6つの理由

    こんにちは、プロモーション担当のクーパーです。 みなさん、Pinterest 使ってますか? 今、急上昇中でとってもホットな Pinterest ですが、まだアカウントを作っただけで十分に楽しめていません。今日は、mashable の infographic 記事から、「Pinterest にハマっちゃう理由」をご紹介します。 ユーザー数の急激な増加! なんと、2011年9月から2012年2月までの月間ユニーク訪問者数は、168万人から1623万人(866%増)に増加しました。 Pinterest に費やす時間は、1か月98分程度。Tumblr の2.5時間やFacebook の7時間!!と比較するとそんなに長いわけではありませんが。(Facebook おそるべしです。)それでは、以下ハマっちゃう理由の紹介です。 理由1: デザイン ご存知のようにPinterest には、素敵なデザインが

    [Infographic] Pinterest にハマっちゃう6つの理由
    invent
    invent 2012/04/18
    Pinterest にハマっちゃう6つの理由 (フェンリル ...
  • 【保存版】これを見たら、あなたの財布は確実に緩むであろう素敵すぎるネットショップ 101選

    こんにちわ。坪内です。 突然ですが、この2年ほどで集めた素敵なネットショップを一挙公開しちゃいます。はっきり言って、この記事書いてるだけで、何度もポチリかけたくらい、素敵なアイテムがてんこ盛りです。既に知っているショップも多いと思いますが、知らないショップがあったら是非チェックしてみてください。 ちなみに、数が多すぎて説明文書くのは断念しました。カテゴリ毎には分かれているので、実際にご自身の目で確認してみることをオススメします。

    【保存版】これを見たら、あなたの財布は確実に緩むであろう素敵すぎるネットショップ 101選
    invent
    invent 2012/04/15
    【保存版】これを見たら、あなたの財布は確実に緩むであろう素敵すぎるネットショップ 101選 (フェンリル | デベロッパーズブログ)
  • この日本のスタートアップ 6 社がやっぱりスゴイ。

    マーケ/広報担当の坪内です。 2011年頃から空前のスタートアップブームで、スタートアップ関連ビジネスが熱を帯びています。 インキュベーター施設、コ・ワーキングスペースが増えたり、有名実業家がチームを組んで小額資からの出資をするファンドを立上げたり、KDDI などの大手企業もスタートアップ支援を行なったりしています。そういった動きも相まって、最近ではにわかにTechCrunch にも日IT 企業の記事がよく掲載されるようになってきました。 スタートアップではありませんが、世界の IT トレンドにばっちりハマっているソーシャルゲーム系、GREE や DeNA などの動向にも注目が集まっています。そして、2012年はこの流れがより加速していくと予測されています。 フェンリルでも海外展開に力を入れようということでいろいろやっていこうとしている最中ですし、個人的にもこの界隈の動きには

    この日本のスタートアップ 6 社がやっぱりスゴイ。
    invent
    invent 2012/02/16
    この日本のスタートアップ 6 社がやっぱりスゴイ。 (フェンリル | デベロッパーズブログ)
  • UIKit とスレッドのお約束

    アプリが小気味よく動くようにするために、メインスレッドでの重たい処理を避けて、適宜バックグラウンドスレッドに処理を回すことはよくあります。 このとき注意が必要なのは、バックグラウンドでの処理結果を画面に反映させる時の以下のお約束です。 UIKit のオブジェクトはメインスレッド以外からアクセスしてはいけない Apple のドキュメントとしては Cocoa Fundamentals Guide に “All UIKit objects should be used on the main thread only” と書いてあります。この制限は UIKit 特有ではなく、Java の Swing などでも共通の設計です。GUI のパフォーマンスを良くするために、スレッドセーフをあえて捨てて単純化しているのです。 ではどうすれば良いのかと言うと、バックグラウンドスレッドからメインスレッドに処理を

    UIKit とスレッドのお約束
    invent
    invent 2012/01/17
  • Android アプリの描画を高速化する 5 ステップ

    こんにちは、Sleipnir Mobile for Android 開発担当の西田です。 今回は、Sleipnir Mobile for Android でも実施している Android アプリの描画チューニング手法を紹介します。 1.まずは計測 ~プロファイラ編~ 古来より「計測なくして高速化なし」と言い伝えられています。まずは Android SDK 付属の Traceview というプロファイラで、遅いのは当に描画なのかどうかを調べましょう。 プロファイリングの仕方ですが、開始/終了位置をコードで埋め込む方法と Eclipse から開始/終了を指示する方法があります。コードを埋め込む方法は、traceファイルをデバイスから取り出したりする必要がありちょっと面倒です。ですので今回は Eclipse からお手軽にプロファイリングする方法を紹介します。 まずはデバイス上で計測したい画面を

    Android アプリの描画を高速化する 5 ステップ
    invent
    invent 2011/11/24
    Android アプリの描画を高速化する 5 ステップ (フェンリル | デベロッパーズブログ)