サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
blog.fenrir-inc.com
こんにちは、エンジニアの宇佐見です。 私の普段の仕事では、多くの時間をソフトウェアの設計やコードの読み書きで過ごしています。しかし、ときには仕様書や報告書のように体裁が整った文書をつくる場合もあります。私はそういった文書を書くときにも、コードを書くときと同じように、プレーンテキストで書くことが多いです。 プレーンテキストで体裁が整った文書を書くときに便利なのが、軽量マークアップ言語のひとつである AsciiDoc です。軽量マークアップ言語といえば Markdown がよく知られていますが、ここで挙げた AsciiDoc は、表形式、画像の配置指定、目次の出力、などの体裁を整える際に便利な記法がサポートされているのが特徴です。また、Asciidoctor による拡張で、各種の作図記法(blockdiag、PlantUML、Graphviz など)を文書に埋め込むことも可能です。 この記事で
こんにちは! 島根支社でウェブエンジニアをしているカナツです。 GW も終わり、現実と向き合う日々に引き戻されたみなさま、いかがお過ごしでしょうか。 次の大型連休は島根観光をオススメします。自然が豊かすぎる島根で非日常的な日々を過ごしたくないですか? 前置きはさておき、みなさん、チーム開発時のソースコード管理って何使ってますか? GitHub?GitLab?bitbucket?そんなことより進捗どうですか? 弊社ではソースコードの管理に GitHub Enterprise をつかってチーム開発を行うことが多いです。 複数人で開発を行うと、大きなシステムでもスピード感をもって開発を進めることができたり、複数機能を並行して進めることができたりするなど、良いこともある反面、チーム開発だからこそのさまざまな問題が立ちはだかることってありますよね。 たとえば… 誰が何のタスクを対応しているかわからな
アプリケーション共同開発部のしみずです。 このブログを読んでいるみなさんならSwift好きですよね?ということは、Protocolも好きですよね? では、Protocolのメソッドがどのように呼び出されるのかご存知でしょうか? 今回は、Protocolに関して一度は見たことや嵌ったことがあるかもしれない事例と、その原因の考察をしてみたいと思います。 事例 最後の行では、S structのインスタンスを渡しているのにも関わらず、P protocolのmethod()が出力されています。 これの解決方法は、P protocolの定義本体に”func method()”を含めることですが、ではなぜ、P.method()が実行されるのでしょうか? それはextensionメソッドは、Static Dispatchだからです。 Swiftで利用されるディスパッチの種類 ここでディスパッチについて整理
フェンリルデザインの末綱です。 最近受験した、HCD-Net認定の人間中心設計専門家試験について書こうと思います。 HCD-Netって? HCDやUXデザインに関する様々な知識や手法についての啓蒙活動や情報発信を行っている日本で唯一のHCDに特化した団体です。 HCDって?? Human Centered Design、直訳すると人間中心設計。 UX(ユーザーエクスペリエンス)という考えも、HCDプロセスがベースになっています。 HCDのプロセスは国際規格化(ISO 9241-210)されており、日本語に翻訳されたものがJIS規格(JIS Z 8530)です。 HCD(人間中心設計) と私。 私がこのプロセスでいいなぁと思う点は、2点。 1. ユーザー自身がニーズだと思っていない「本当のニーズを満たすもの」が求められていることです。 2. ユーザーの本当の姿を知り、真の要求を汲み取るために
フェンリルデザインのナカニシです。 2018年3月1日〜3日、ベルサール新宿グランドで「try! Swift Tokyo 2018」が行われました。プログラミング言語 Swift に関する国際カンファレンスイベントです。 フェンリルは、このイベントにゴールドスポンサーとして協賛。スポンサー特典でブースを出展しました。 このブースで私たちは、ノベルティグッズがもらえる「ガチャガチャ」を実施しました。参加者の皆さまに無料でガチャを回してもらい、Swift にちなんだ独自デザインの缶バッジやTシャツをプレゼントする企画です。 おかげさまで「ガチャガチャ」は好評いただき、一日目の昼過ぎごろ、盛況のうちにノベルティグッズを配布し終えることができました。 この記事では、参加者に喜んでもらう企画づくりに悩んでいるあなたへ。「try! Swift Tokyo 2018」のブース出展を振り返って、私たちが当
こんにちは。アプリケーション共同開発部エンジニアの石島です。 昨年の 11 月に Keras を使って Droid くんを認識してみた と題して Deep Learning の一種である Convolutional Neural Network(CNN)を用いて画像内の Droid くんの認識を行なってみました。今回は画像中の Droid くんを探してみようと思います! 今回は Droid くんのみの検出なので大量の画像と学習時間を必要とする Deep Learning ではなく、以前からある画像特徴量の HOG(Histograms of Oriented Gradients)特徴量と機械学習手法の SVM(Support Vector Machine)を用いて Droid くんの検出を行います。 この組み合わせは Deep Learning の登場前にはよく用いられていた手法です。こち
どもっ! デザイン部でディレクターをしている葛巻と申します。 転職してまだ2か月という新米でバタバタしており、 日頃のインプットの大切さを痛感している今日この頃です。 そんなインプットの1つに、大好きなTV番組「アナザースカイ」で 気になる人の仕事っぷりを観るという習慣があります。 中でも、『nendo』の佐藤オオキさんがゲスト出演した回がとても印象的だったので、 少しご紹介させていただきます。 nendo とは? 佐藤オオキとは? 言わずと知れた、世界的デザイナーの佐藤オオキさん。 1977年カナダ生まれの40歳。早稲田の理工学部を卒業後、 大学院の修士課程を修了した2002年に『ミラノ・サローネ』という 世界最大級の家具見本市を訪ねた際に触発されてデザインオフィス『nendo』を設立。 東京とミラノに拠点を持っており、建築・インテリア・プロダクト・グラフィックと 幅広くデザインを手掛け
こんにちは。アプリケーション共同開発部エンジニアの浪花です。 iOS11 が提供されて5ヶ月が経過しようとしていますが、個人のアプリや日々の業務で新機能を使った開発が出来ていますでしょうか。 今回 iOS11 で提供されたものの中で Depth API に興味があり OpenGL ES と組み合わせて被写界深度エフェクトをかける簡単なアプリを作成したので紹介したいと思います。 Depth API iOS11 で追加された Depth API とはカメラから近い物体は白く、遠い物体は黒くといったように空間の深さ(深度情報)を可視化し、画像として出力できる機能になります。 現時点では2つのカメラを搭載した端末でしか試せることが出来ませんが、この機能は今までのカメラでは平面的なデータでしかフィルター処理などできませんでしたが、深度の情報が追加されたことにより、別のアプローチで様々な事ができそうで
こんにちは!フェンリル島根支社の谷口です。 早いもので入社して10ヶ月がたちました。 出来なかったことが少しずつ出来るようになり、成長の実感が芽生え始めてきました。 特に、島根支社で今年度から導入している「メンター制度」には非常に助けられました。 本記事では、新入社員視点でこの制度についてご紹介します。 メンター制度とは メンター制度とは、知識や経験が豊富なメンター(先輩社員)がメンティー(新人社員)に 1対1 で、仕事やプライベートの悩み相談にのったり、技術的なサポートを行ったりする新人教育手法のひとつです。 OJT と比較しても、メンター制度はより包括的にサポートできるため、メンティーもより安心して仕事に取り組めます。 サポートといっても、メンターは最初から答えを教えるわけではありません。 対話形式により、メンティーの自発的な問題解決を促します。 これにはメンティーとの信頼関係を構築す
こんにちは、アプリケーション共同開発部の大江です。 2017年の9月に発表されたiOS11ではiPhoneXの登場に伴うSafe Areaの導入など開発者にとって大きな変化がありました。 あまり注目を浴びていませんが、iOS11ではMapKitも大幅に改良されました。 その中でも注目すべきは、これまではClusterやClusterKitなどのライブラリに頼ることが多かったアノテーションのクラスタリングがMapKitの機能として公式に追加されたことです。 そこで、今回はMapKitでアノテーションをクラスタリングする方法について紹介します。 実装方法 このサンプルコードではフェンリルの4つの所在地にアノテーションを配置します。 class FenrirOfficeAnnotation: NSObject, MKAnnotation { static let clusteringIdenti
アプリ部の中澤です。 iOSの生体認証の仕様について、iOS 11.2現在のAppleの公式ドキュメントに一部誤りがある事を知ったので、その詳細を共有します。 あるiOS端末が何の生体認証に対応しているかを知る為には、LAContextクラスのbiometryTypeというプロパティを見ます。このプロパティにはiOS 11.2現在、none, touchID, faceIDのいずれかが入ります。 OS 11.2現在の公式ドキュメントによると、このbiometryTypeは以下のように説明されています。 This property is only set when canEvaluatePolicy(_:error:) succeeds for a biometric policy つまり、生体認証が使える場合に限り正しい値がセットされるということです。 しかしそうなると、以下の場合も取得出
こんにちは、アプリケーション共同開発部のみなみです。 iOSアプリ開発を始めてから様々なライブラリを使ってきました。その中で特に強力でおもしろいと感じたのが、Rx (Reactive Extensions)に影響を受けたReactiveCocoaや、RxのSwift実装であるRxSwiftです。Rxライブラリとそれが実現するリアクティブプログラミングは、アプリ開発を大きく変えました。この記事では普段の開発で感じたRxライブラリの威力や課題、そして未来について書きたいと思います。 Rxライブラリは何を変えたのか イベント通知の統一 フラグ変数、深いネストを一掃して見通しが良くなった 複雑な非同期処理を分かりやすく表現 Rxライブラリの課題 依存度の強さ イベントを実行することの影響が予測できない 高い学習コストが割りに合わない部分がある 課題への解決策 async/await Redux 未
こんにちは。デザイン担当の高取です。 私は育休から復帰して 3 年目のワーキングマザーで、スマートフォンアプリや Web アプリのデザインをしています。 そんな私が時々質問されること、それは 「仕事と育児、どうやって両立してますか?」 この質問、ワーキングマザーばかり訊かれがちですが、仕事と育児の両立が課題なのは、子供がいて働いている人全員ですよね。皆さんは、どうやって両立していますか? 私は「なんとか頑張ってます…」としか言えない状態ですが、育休復帰 3 年目になって、少しずつペースがつかめてくるようになってきました。 今回は、私の仕事と育児の両立方法についてご紹介いたします。 仕事について 私は現在時短勤の制度を利用しており、通常勤務の他のメンバーよりも労働時間が少ないです。しかし、時短であることよりも、1 分たりとも残業ができないことの方が仕事上のインパクトがあります。 けっして残業
このように E2E テストに必要な機能を AWS のサービスだけで実現することができます。 また今回利用するヘッドレスブラウザは Google Chrome (以下 Chrome) を使います。 Chrome を利用するメリットとして、盛んに開発が行われており、他のヘッドレスブラウザに比べて最新技術の対応が早いことが挙げられます。 ヘッドレスブラウザのビルド Lambda で動作させる Chrome ですが、執筆時現在 ダウンロードページでは、Lambda で実行できるもの配布されていないため Chromium を使います。 Lambda で動作させる際の制限事項として、Lambda からは /tmp 以外のディレクトリにアクセスができません。 したがって Chromium がアクセスする /dev/shvm を /tmp に変えてやる必要があります。 これらを踏まえて、Amazon Li
導入方法 アドイン導入手順 SelectShapes.zip をダウンロードします(ファイルのダウンロードは後述) ダウンロードした zip を解凍して、SelectShapes.xlam を取り出します SelectShapes.xlam を任意の保存場所に移動します ※以降は xlamファイル を Excel が参照します。ファイルを移動した場合は、シェイプ選択さんが動作しなくなりますので、導入手順のやり直しが必要になります Excel を起動します 「ツール」>「Excel アドイン…」を選択して「アドイン」ダイアログを開きます 「参照…」ボタンを選択します SelectShapes.xlam の保存先に移動して、SelectShapes.xlam を選択します 「有効なアドイン」に「Selectshapes」が追加されますので、チェックされた状態にします 「OK」を選択します 以上
こんにちは、アプリケーション共同開発部の中澤です。 先日、「iOS 11 で Safari View Controller の Cookie 等の共有機能が無くなる (予定)」という記事で、 Safari View Controller の仕様変更について「不便になるなぁ」などとボヤいておりましたが、あれから少し後、 SafariServices フレームワークに新しく SFAuthenticationSession というクラスが追加されました。これを使うことで、 Safari View Controller の当初の利便性をある程度保って Web 認証が出来るようになりました。🎉 以下、その詳細についてご紹介します。 SFAuthenticationSession とは? SFAuthenticationSession は対象の Web サービスの API トークン を取得するための
新規事業部の高田です。 この記事は、私が業務中に体験した血の気が引く失敗とその顛末を、弊社の金曜のお昼に開かれているランチタイム勉強会でお話したところエンジニアだけにウケたので、「よーし、世間のウケも取りに行っちゃうぞー」と調子に乗って下心まる出しで焼き直しネタをお送りする予定です。 ランチライム勉強会とは 弊社では有志が集まって毎週金曜日のお昼にランチライム勉強会というものを開催しています。 勉強会とは言え、各支社をテレビ会議システムでつなぎながらご飯を集まって食べつつ、ゆるーいネタを発表しあうような場です。大きなマサカリは飛んでこないので、気軽に発表の練習が出来る場でもあります。 ところで
こんにちは、アプリケーション共同開発部の図子です。 iPhone X が 11/3 に発売されますね。みなさんも買いますよね?もちろん僕も買いますよ。 iPhone X ではディスプレイが大きく変わり、筐体前面のほとんどがディスプレイになります。Portrait では画面上部にカメラやマイクが納められているハウジング部分が欠け、下部は Home Indicator のための表示領域があります。Apple から公開されているドキュメントやガイドによると Safe Area を使ってこれらの要素を基本的に避けて表示するようにと案内されています。特に影響が顕著なのは画面下部に表示する Bar もしくはそれっぽい View ではないでしょうか? iOS 標準の UITabBar, UIToolbar などは UIKit 側がよしなにレイアウトを調整してくれ、ボタン類は Safe Area 内に納め
こんにちは、R&D 部の青野です。 「読者視点で見やすくて読みやすいページを作りましょう」とよく言われてますが、たまには見づらくて読みにくいページがあってもいいんじゃないか。 ということで、読みにくいページを作りました。 と言っても、デザイン、ページ構成的にというわけではなく、ただ暗いだけのページです。 仕組みとしては暗く描画した canvas タグをページの上に重ねているだけとなっております。 また、このページはモバイルとPCでは見え方が少し違いますので、モバイルで見ている方はPCでも見てみてください。 (さすがに暗いままだと記事が読みにくいので、ページを明るくするボタンを付けました。ご利用ください。) ON OFF 通常 canvas 要素や img 要素などが上に重なっている場合、その下にある要素は選択できなくなります。しかしこのページではまっ暗な状態でも上にある[ON][OFF]の
アプリケーション共同開発部のオスカルです。 iOS エンジニアをやっています。 「次の iOS のため Apple が AR と VR の研究をしている」という噂を聞いたことがあります。みなさんもデジタル世界と現実世界の壁を壊す技術に興味があるのではないでしょうか。理由と関わらずコンピュータビジョンがこれからもっと大事になると考えられます。 現在、たくさんの AR と VR のフレームワークが存在しています。このブログにもこのような記事が投稿されています。 次世代の AR を体験! Tango をはじめよう Amazon Rekognition の実力を試す の技術の裏で実際何が起こっているか興味がある方は OpenCV (Open Computer Vision) を使って見てください! OpenCV は C/C++ で書いているライブラリですが C++, C, Python と Jav
こんにちは、アプリケーション共同開発部の河野(こうの)です。 今年の WWDC で Vision フレームワークが発表され、テキスト検出などの機能を簡単にアプリに組み込むことができるようになりました。 しかし、画像のここにテキストがあるよという検出はできるものの、そのテキストが何の文字なのかという文字認識の機能についてはまだサポートされていません。 近い将来 Vision フレームワークに文字認識の機能が追加されるとは思いますが、いま文字認識の機能をアプリに組み込みたい場合はどうすればいいのか。 iOS アプリ開発のプロジェクトで文字認識機能を開発する機会があり、そのときに調査したことなどをまとめたいと思います。 概要 今回、認識したい文字列は – 数字と大文字英字のみからなる文字列 – 1 行のある決まった文字数 – 特定のフォント – 文字間で前後関係を持たない文字列 というような条件
今年入社しましたデザイナーの きの です 調べ物が好きです。 最近は、iOS向けのデザインを作るにあたり、pt や px・% による指定の違いをまとめていました。 結論としてはこうなります。 端末に関係なく同じ見かけの大きさにしたい > pt 見かけのサイズにあわせて大きさを変えたい > % まとめた図は以下からご覧ください。 図でまとめました pt や px が影響してくるのは端末ごとの解像度差です。また % は画面の広さに影響してきます。 なので今回は @2x を基準として同じ広さの @1x と広さの違う @2x を用意しました。 イメージとしては iPhone6 / 5 / 4 です。 赤:pt 黄:% 青:px pt はどの場合でも見かけの大きさが変わらない 画面の広さがポイントで規定されていますので、サイズの指定にポイントを使用した場合は解像度や広さに影響を受けません。 % は画
こんにちは。島根支社の直江です。 先日参加した Ruby に関する勉強会にて、とあるツールに触れる機会がありました。 その名もスモウルビー(Smalruby)。 スモウルビーは、Ruby によって作成されたビジュアルプログラミングツールです。 子供から大人まで楽しめるこのスモウルビーについて、今回はその概要や楽しみ方についてご紹介します! スモウルビーとは スモウルビーは島根県で活動している「Ruby プログラミング少年団」の皆様により開発されました。 方向性としては Scratch を代表とするビジュアルプログラミング言語を踏襲しています。 数 10 種類ある命令ブロックを組み合わせるだけでプログラムを作成できるため、小中高生を対象とした Ruby の学習用ツールとして活発に利用されています。 また、最大の特徴として組み立てたブロックを実際の Ruby コードに変換できます。 最初はブロ
こんにちは、アプリケーション共同開発部のみなみです。 初代 iPhone が発売されてから今年で10周年を迎えました。これまでに多数のアプリが開発され、傾向としては、以前と比べものにならないくらい大規模・複雑化してきています。フェンリルでも毎年多数のアプリが開発されていて、開発の日々の中で今後もその傾向は加速していくと感じます。 大規模・複雑化する開発で出てくる問題 スコープの広い状態の扱いの難しさ 画面間やモデル間で共有されるスコープの広い状態をどうするかは、アプリ開発において最も厄介な問題の一つです。 例えば・・・ 開発者が頑張って小さい責務だけ持つようにした、それぞれ 200 行ぐらいのクラスを5つ作ります。突然の仕様変更でこの5つのクラスが A という状態を共有するようになりました。共有するのはたった1つの状態なのですが、これだけで全てがぶち壊しです。この5つのクラスは、1つの共有
こんにちは。エンジニアの木村です。 早いもので 「Fenrir Advent Calendar 2016」 も半分を過ぎ、折り返しの 13 日目となりました。 「Fenrir Advent Calendar 2016」 ラストとなる 12 月 25 日はクリスマスでもあり、毎年恒例の Ruby のマイナーバージョンアップのリリース日でもあります。 Ruby エンジニアな方々は、毎年新機能に心を踊らせているのでしょうか。あるいは、既存システムへの対応に追われることになるのでしょうか。Ruby 2.4 でもたくさんのアップデートがありますが、今日はその中からいくつかピックアップしてご紹介したいと思います! Refinements Ruby 2.1 から登場した Refinements については以前にも本ブログで紹介したことがありました。Ruby 2.3 までと比べ Refinements の
忙しい人向けのまとめ Concourse CI は Docker による構築が容易で、CLI による処理を自動化出来ますが、シンプルなUIしか持っていません。 そのため、Jenkins のように特定の個人に依存することなく、分散化した自動化のためのプラットフォームとして有望です。 モバイルアプリのビルドにも使えるので実際に試してみました。 Jenkins は最高! そう考えていた時期が俺にもありました こんにちは、普段は iOS 向けのアプリを作っている森本です。 弊社では、以前よりアプリのビルドを始め定型作業の内、自動化出来るものを Jenkins で行うこととしております。 そもそもの導入の目的は、提供するアプリの品質を安定させるため、環境が変化しやすい個人の端末ではなく、特定のビルド専用機でビルドを行う必要があり、それを実施できる WebUI が欲しい、というところにありました。 導
こんにちは。アプリケーション共同開発部の門多です。 昨年の終わり頃に、 Mac mini 増殖中!iOS アプリのビルドをマスター・スレーブ化して時間を短縮するという pixiv さんの記事がありましたが、フェンリルの共同開発事業アプリ開発でも、2012 年ごろから Jenkins を使ったビルドを行っています。 なるべく多くの人に使ってもらえるように、基本的に制限しない運用を行なっていました。しかし数年経ってみると、OS やビルド環境の変化もありましたし、現在の構成が色々と問題を起こしていることもわかってきました。現在ビルド環境の改善を行っているので、ついでに Keychain 管理の自動化や Xcode 自動インストールなど、これまで経験した色々な問題とその対応方法をまとめました。かなり長い記事になってしまいましたが、実際に使っているプログラムをそのまま掲載していますので、そのうち一部
こんにちは、アプリケーション共同開発部の中澤です。 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 からの引用です。
こんにちは。R&D 部の近藤です。 普段モーショングラフィックスなどを制作している人で、 3DCG を始めたい、興味があるけどどれがいいのか分からない。 映画業界やゲーム業界で使うような本格的なものは高価だし、 そこまでガッツリとしたものじゃなくていいんだけど、長期的に使うならちゃんとしたものがいい…。なんて考えている方はいませんか? けっきょくどれがいいのか? 私は CINEMA 4D をお勧めします。 CINEMA 4D は MAXON が出している総合型 3D ソフトで、通称 C4D と呼ばれています。 Maya、3dsMAX、Lightwave3D などが映画の VFX やキャラクターモデリング・アニメーションを得意とするのに対し、CINEMA 4D はモーショングラフィックスを得意とするソフトです。 特にこのような分野の映像制作に向いています。 モーショングラフィックス キネティ
次のページ
このページを最初にブックマークしてみませんか?
『画面レイアウトを行うときに便利なツール « Elegant Apps Developers』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く