タグ

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

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

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

    iOS ビルド環境を Jenkins と Docker と Ansible でコード化する(実際のコード付き)
  • PDF.js の導入方法と苦労した話

    こんにちは。 島根支社の原田です。 JavaScriptPDF を表示する際にライブラリとして PDF.js が話題にあがると思います。 PDF.js は名前の通り JavaScript で実装されているライブラリです。 HTML5 の技術を使っているため、最新のブラウザであればほぼ問題無く使うことができます。 稿では、PDF.js を利用した PDF の表示までの導入部分と、実装で苦労した話をしていきます。 下準備 最初に、プロジェクトのディレクトリを作成し、npm init します。 $ mkdir fenrir-pdfjs $ cd fenrir-pdfjs $ npm init 次に、最低限必要なパッケージをインストールします。 $ npm install --save-dev browserify $ npm install --save-dev pdfjs-dist こ

    PDF.js の導入方法と苦労した話
  • Swift で Objective-C のソースを利用する

    こんにちは。アプリケーション共同開発部の八田です。 Fenrir Advent Calendar 2015 も 14日目となりました。 WWDC 2015 で Swift のオープンソース化が発表され、先日 GitHub で公開されました。私も Linux で動くようになった Swift を少し試してみましたが、動作するプラットフォームが増えて Swift の利用が拡大していくことに期待しています! さて、Swift で開発しているプロジェクトでどうしても Objective-C のコードを使いたくなった時に、Bridging Header だけでなく Clang の Modules も使えることを最近知ったので、Modules について紹介したいと思います。 Modules とは Modules は Clang の機能で、ヘッダーファイルで公開された情報をあらかじめバイナリとしてモジュー

    Swift で Objective-C のソースを利用する
  • 拡張性は無限大!Android の新コンポーネント RecyclerView の真価を探る

    こんにちは。共同開発部の北川です。 Fenrir Advent Calendar 2014 20日目です。 今年、もっともグッときた出来事といえば Android 5.0 Lollipop のリリースですよね! Lollipop では Material Design が採用され、色と重なりでアプリの世界観を表すようになりました。これまでの Android とは異なり、アニメーションやインタラクションを重視するデザインへと進化しています。 見た目の変化もさることながら、Lollipop では機能面も数多く強化されています。 その中の一つ、RecyclerView は非常に柔軟で表現力の高い UI コンポーネントです。 RecyclerView を使った新しい表現に挑戦してみました。 RecyclerView とは Android ではデータコレクション表現のために ListView と Ad

    拡張性は無限大!Android の新コンポーネント RecyclerView の真価を探る
  • 今最も注目されている設計手法!MVVM を Android アプリ開発に取り入れてみた

    こんにちは。共同開発部開発担当の北川です。 クロスプラットフォームなアプリ開発では Xamarin の使用はビジネスロジックの共通化が可能となり非常に効果的です。 すべてのアプリを単一の言語(C#)で実装することができる点だけでも魅力的ですが、MVVM 設計によりその再利用性を高めている点こそがその真価を発揮しているとも言えます。 私は Xamarin でのアプリ開発を通して MVVM 設計のすばらしさを経験してしまいました。もう後には戻れません。 Java や Objective-C でのアプリ開発でも MVVM 設計は開発スピードと品質確保を両立するために有効であるはずです。 今回は Android アプリ開発(Java)で MVVM を使うとどうなるか、紹介してみたいと思います。 MVVM 設計について MVVM 設計ではビジネスロジックを Model が担当し、ViewModel

    今最も注目されている設計手法!MVVM を Android アプリ開発に取り入れてみた
  • 【PHP】その CSV 変換、本当に「fgetcsv」でいいの?

    こんにちは。ウェブ開発担当の木戸です。 突然ですが、PHPCSV ファイルを連想配列に変換してゴニョゴニョ…ってよくやりますよね? 私も先日開発中に、CSV の関数なんだったかなーと思って「php csv」で検索していたのですが、ファーストビューが定番の fopen して fgetcsv の公式サンプルや記事ばかりでタイトル通り「?」だったので、調査してみたところ、意外と面白いことがわかりました。 やっぱり fgetcsv だけじゃなかった 似たような機能を持つ関数が複数あり、公式ドキュメントを見てもどれを使っていいかわからない、なんてこと PHP ではよくありがちです。CSV 変換もやっぱりいろんな方法がありました。 そこで今回は、あらゆる CSV 変換処理を検証し、処理時間とメモリ使用量を比較します。処理はレコードごとの連想配列に変換するのみで、よくセットでやる文字コードの変換や

    【PHP】その CSV 変換、本当に「fgetcsv」でいいの?
  • Android のログ出力をスマートに

    こんにちは。東京で開発担当をしています志田です。 初のブログ執筆となりますが、 この度は私の知っているノウハウを少しでも共有できればと思い拙い筆を、もとい叩き慣れたキーボードを手に取って云々という次第です。 今日のテーマはずばり Android 開発における “スマートな” ログ出力について!! です。 基中の基と言える内容ではありますがそれ故に大事な部分でありますので、どうログを出力するのが最適かわからない、という場合に参考にしていただければと思います。 ありがちなログ出力 とりあえず何も考えずに android.util.Log クラスを使ってログを出力するとこんな感じになるかと思います。 public class BeforeActivity extends Activity { private static final String LOG_TAG = "Before"; pr

    Android のログ出力をスマートに
  • 【iOS/Mac開発】超サクサクアプリへの必須ツール Instruments を使いこなそう

    こんにちは。iOS / Mac 開発担当の金内です。 使って幸せなアプリには、サクサクとした動きが欠かせませんね。自分たちで作っているアプリが「サクサク」でなく「もっさり」と言われてしまうと残念な気持ちになりますが、反面「よし。こうなったら超最適化して超サクサクなハイパフォーマンスアプリを目指す!」と誓いを立てるよい機会でもあります。 そんな誓いを立てたあなたにピッタリのツールが Xcode に付属している Instruments(インストゥルメンツ)です。フェンリルのウェブブラウザ Sleipnir for Mac や Sleipnir Mobile for iPhone / iPad の開発でも大活躍しています。 Instruments は、一般的にはプロファイラという種類のツールにあたります。プロファイラは、どのオブジェクトがどれくらいメモリを消費しているとか、どのメソッドにどれくら

    【iOS/Mac開発】超サクサクアプリへの必須ツール Instruments を使いこなそう
  • Jenkins がもっと便利になるおすすめプラグイン 8 つ

    こんにちは、開発担当の松です。 今回は、Jenkins にたくさんあるプラグインの中からおすすめのプラグインをいくつか紹介します。 ジョブ一覧にアイコンを追加できる: Custom Job Icon 今年8月にリリースされた比較的新しいプラグイン。名前の通りプロジェクトごとにアイコンを登録できて、それがプロジェクト一覧に表示されるようにできます。 利用するには、プラグインインストール後にアイコンを登録する必要があります。 「Jenkins の管理」→「システムの設定」ページに「Custom icons」セクションが追加されていますので、そこでファイルを追加しておきます。追加しても「Refresh icon list」をクリックしないと表示が更新されない点に注意。 なお、画像の拡大縮小あまりきれいに行われないので、アイコンのサイズは 24 x 24 にしておくのがよいみたいです。 アイコン

    Jenkins がもっと便利になるおすすめプラグイン 8 つ
  • 実は違う。クロスブラウザでの gif アニメーション再生速度の合わせ方。

    *Safari 5.0 系は Ienternet Explorer と同じで 0.06秒 からしか対応してません。 対応している速度よりフレームレートが短くなると明らかに遅くなっているのが分かると思います。 各ブラウザで対応しているフレームレートの限界を超えると、強制的に 0.10秒 になります。 (Safari、Google Chrome など一部のブラウザでは違う) 以上のことからクロスブラウザで gif アニメーションの再生速度を合わせる方法は、フレームレートを 0.06秒 までにすることです。 gif アニメーションを作る、またはこれから作ってみたいと思っている方は、フレームレートは 0.06秒まで!ということを覚えておくといいかと思います。

    実は違う。クロスブラウザでの gif アニメーション再生速度の合わせ方。
  • Androidでドラッグアンドドロップ

    こんにちは。 Android 開発担当の岸です。 今回は Android でのドラッグアンドドロップの実装についてです。 ※Android OS 3 系以上が対象です。 Android のアプリを開発していると、 ドラッグアンドドロップで View の並び替えをしたいという要望があります。 Android OS 2 系だと、ドラッグアンドドロップを実現する API がなく、 全て自分で実装しなくてはならず、非常に大変です。 ですが、Android OS 3 系以上だと、簡単に実装できます。 ドラッグアンドドロップを実装しよう ドラッグアンドドロップを開始するには以下の様に実装するだけです。 ドラッグアンドドロップを開始したいタイミングで以下を実装してみてください。 通常は onLongClick に実装すればよいかと思います。 view.startDrag(null, new View.

    Androidでドラッグアンドドロップ
  • リッチに見せるデザインテクニック。Appleのデザインのように美しい金属調の質感を表現する方法。 (フェンリル | デベロッパーズブログ)

    こんにちは、イメージ担当の長谷川です。 今回は Apple がデザインしている iCloud アイコンのような美しい金属調の質感を Fireworks で表現してみました。 アレンジ次第で水平のエッチングやブラスト加工のようなイメージも簡単に作ることができます。 ぜひ Web や UI デザインの参考にしていただければと思います。 1. ベースのテクスチャを設定する まずグラデーションの設定をします。 長方形ツールで作成するボタンなどのサイズより少し大きいサイズの四角を描き、グラデーションの塗りを円錐にします。 以下のように白とグレーを交互に設定します。右端と左端を同じ色にしないとグラデーションに線が出来てしまいますのでご注意ください。 ここでは濃いグレーを #666666、両端の薄いグレーを #999999 に設定しています。 次にノイズを適用量:10で追加します。これが同心円状のヘアラ

    リッチに見せるデザインテクニック。Appleのデザインのように美しい金属調の質感を表現する方法。 (フェンリル | デベロッパーズブログ)
  • 【スマホ用ページ】低解像度、高解像度端末のどちらでもくっきり綺麗に表示しつつ、幅ぴったりにする HTML テンプレート。

    こんにちは、ウェブ開発の林です。 スマートフォン向けウェブページを作る際、横幅ぴったりにしたいと思いませんか。 meta viewport というタグを使えば表示サイズを調整することができます。 ただそれを使ったとしても、Android / iPhone は端末により横幅が違うため個別に最適化するのは面倒です。 スマホ端末ごとにコードを分けることなく常に幅ぴったりにする HTML テンプレートを作りました。 こちらを参考に組んでみてはいかがでしょうか。 HTML テンプレートコード(ヒント付き) こちらの HTML コードを丸っとコピペして修正していくと楽だと思います。 追記: ライセンスフリーです。自由に使ってください。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> <!--

    【スマホ用ページ】低解像度、高解像度端末のどちらでもくっきり綺麗に表示しつつ、幅ぴったりにする HTML テンプレート。
  • 高品質な UI や Web のデザインが短時間で作れるおススメの Fireworks 拡張機能 4つ

    こんにちは、イメージ担当の長谷川です。 「品質を上げれば速度が落ちるし、速度を上げれば品質が…」 デザイナーにとってはこの品質と速度が非常に悩ましいですよね。 今回は UI や Web デザインのモックアップなどを、品質を保ったままサクっとデザインするときに役立つ Fireworks の拡張機能をご紹介します。 1. 作ったデザインを崩さずにまとめて縮小できる「Smart Resize」 Web ページのデザインデータを使ってスマートフォン用など異なったサイズのデザインを作りたいときなどに最適です。 【使い方】 インストールするとコマンドに「Smart Resize」が追加されます。 サイズ調整をしたいデザインを選択して コマンド> Smart Resize > Attach を選択します。 後は黄色のコントロールポイントでサイズを調整するだけでテキストの改行などデザインを保ったまま自動的

    高品質な UI や Web のデザインが短時間で作れるおススメの Fireworks 拡張機能 4つ
  • 【PHP】とあるページの、はてブコメント、ツイート、Facebookいいね!数を取得するテンプレコード【’11年末版】

    こんにちは。開発担当の林です。 今回はタイトル通りPHP(5.2以上)で、とあるページの、はてブコメントと、ツイート、Facebook いいね!数を簡単に取得するためのテンプレ用ソースコードです。 最低限のコードですが、比較的よく使われるものなのかなと思ってまとめました。 何かのお役に立てれば幸いです。 ※ 記事は、各サービスの公式 API を使っています。 はてなブックマークエントリー情報取得API Twitter API (日語参考:Twitter APITwitterまとめWiki ) Facebook Query Language (`・ω・´) はてブコメントと関連エントリーの取得 <?php // とあるページのアドレス(任意のアドレスをどうぞ) $sample_url = 'http://www.fenrir.co.jp/'; // はてブの情報取得 $hatena

    【PHP】とあるページの、はてブコメント、ツイート、Facebookいいね!数を取得するテンプレコード【’11年末版】
  • 1