タグ

ブックマーク / atmarkit.itmedia.co.jp (38)

  • Jenkinsでビルド・テスト・カバレッジ出力・コード静的解析を自動化する

    連載目次 前回の「Kiwi+CocoaPodsで始めるiOSアプリの振る舞いテスト入門」では、「Kiwi」を使った機能の振る舞いテストについて解説しました。 今回は、CI/継続的デリバリの要とも言えるCIツール「Jenkins」のインストールと使い方、プラグインを用いたiOSアプリのビルドの方法を解説します。稿では、Jenkinsを使って次の作業を自動化します。 iOSアプリのビルド iOSアプリのテスト テストのカバレッジ(網羅率)の出力 ソースコードの静的解析 まずは、各ツールをインストールしましょう。稿では、(Mac)OS Xのパッケージ管理システムである「Homebrew」を使ってインストールします。Homebrewは(Mac)OS Xへのソフトウェアのインストールを単純化してくれるツールです。また、Jenkinsで実行したい処理に必要なツールも併せてインストールしましょう。

    Jenkinsでビルド・テスト・カバレッジ出力・コード静的解析を自動化する
  • iOSアプリ開発でCI/継続的デリバリ環境を始めるための4種の神器

    CI(Continuous Integration、継続的インテグレーション)とは、プロジェクトの成果物を継続的に統合し、ビルドやテスト、インスペクション(ソフトウェアレビュー)などを実行する習慣のことです。 そして継続的デリバリ(Continuous Delivery)とは、ソフトウェアを素早くリリースして、プロジェクトの成果物に対する継続的なフィードバックを得られる仕組みを作る、CIを含む開発フロー全体の流れのことです。これらは、近年のソフトウェア開発において必要不可欠なものとなっています。 下記の記事は、CIの基礎知識と導入するメリットを解説しています。併せて読むと、より一層理解が深まると思います。 継続的インテグレーションを始めるための基礎知識 DevOps時代の開発者のための構成管理入門 iOSアプリ開発でCI/継続的デリバリを導入する3つの利点 iOSアプリ開発でCI/継続的デ

    iOSアプリ開発でCI/継続的デリバリ環境を始めるための4種の神器
    masarusanjp
    masarusanjp 2014/03/04
    最近iOSのCI周りの記事が増えてきたな
  • JenkinsでCIすればiOSアプリのビルドは、もう面倒くさくない

    続いて、開発するアプリの登録を行います。アプリの登録では【1】アプリ名や識別名などの登録、【2】プロビジョニングプロファイルを作成しダウンロード、インストールします。 これらの準備が終わったら、App Storeへ公開するためのアプリ開発、パッケージング、アップロードといった流れになります。 「Jenkins Xcode Integration Plugin」でビルドを自動化 このアプリ公開までの作業のうち、いくつかをJenkinsによって自動化することで継続的にアプリを公開できるようになります。通常、アプリのビルドやパッケージングはXcodeから行うことになりますが、Jenkinsから実行する場合にはXcodeのコマンドラインツールである「xcodebuild」などを使って処理を行います。 Jenkinsジョブからシェルを起動してxcodebuildなどのコマンドを直接実行するか、「Je

    JenkinsでCIすればiOSアプリのビルドは、もう面倒くさくない
  • iOSアプリのUIを爆速で激ヤバにする2つのライブラリ

    iOSアプリのUIを爆速で激ヤバにする2つのライブラリ:生産性ガチアゲなオープンソースiOSライブラリ(2)(1/4 ページ) ゼロからiOS SDK開発を始める新規開発者でも超高速・高品質な開発を可能にするオープンソースのライブラリを目的別に紹介していく連載です。実際にライブラリを組み込みながら技術的な側面も併せて詳細に説明していきます。今回は、Clearのような折り畳みやFlipboardのようなめくりエフェクト、Twitterのようなプルリフレッシュを実現する方法を紹介します。 「あのアプリのあの機能」を実現するEGOTableViewPullRefreshとMPFoldTransitionを使ってみた 「良いアプリの条件」というと何が思い浮かぶでしょうか。例えば、誰も実現してない機能を実装していたり、パフォーマンスが良かったり、動作が安定していたり…… とさまざまな意見があると思

    iOSアプリのUIを爆速で激ヤバにする2つのライブラリ
    masarusanjp
    masarusanjp 2013/05/16
    高速にOSSのライブラリを組み込みたいんならcocoapodsの使い方やcocoacontrolsを紹介した方が良いのではって思った
  • ITエンジニアがデータサイエンティストを目指すには?

    ITエンジニアがデータサイエンティストを目指すには?:ITエンジニアのためのデータサイエンティスト養成講座(1)(1/2 ページ) それぞれの専門分野を生かした「データサイエンスチーム」を結成すればデータ活用への道は短縮できる。そのとき、ITエンジニアはどんな知識があればいい? データサイエンティストとして活動する筆者が必須スキル「だけ」に絞って伝授します。 連載バックナンバー はじめに:分析スキルの課題をどう乗り越えるべき? 昨今では、IT系のメディアのみならず一般雑誌や新聞なども“ビッグデータ”というキーワードを見出しに使っています。この文字を目にしない日がないくらいに多用されていて“バズワード”としてとらえられるケースも少なからずあるようです。 しかし、世界の至る所で――もちろん日でも、ビッグデータを分析することで新たな知見を見つけて利益を増大した企業や、顧客の購買行動を予測するこ

    ITエンジニアがデータサイエンティストを目指すには?
  • 継続的インテグレーションを始めるための基礎知識

    継続的インテグレーションを始めるための基礎知識:グリーはいかにしてJenkinsを導入したのか(1)(1/2 ページ) 連載では、グリーのサービス開発において導入している継続的インテグレーション(Continuous Integration、以下、CI)と、CIツールであるJenkinsの導入について3回に分けて説明します。Jenkinsのインストールといった“手順”よりも、CI導入の“モチベーション”や“進め方のポイント”を中心に説明します。 グリーの開発と継続的インテグレーション SNSやソーシャルゲームなどを運営するグリーでは、数百名の技術者が日々さまざまな機能やサービスを開発し、リリースしています。このような規模、リリース頻度での開発を支えるには数多くの工夫や仕組みが必要です。この中でも最も大きな仕組みの1つにCIが挙げられます。 グリーでは、開発にCIを格的に導入し始めたのは

    継続的インテグレーションを始めるための基礎知識
  • 5分で分かる、「スクラム」の基本まとめ

    5分で分かる、「スクラム」の基まとめ:開発チームを改善するためのスクラムTips(8)(1/2 ページ) 「スクラム」は、アジャイル開発の手法群の中でも、「チームとしての仕事の進め方」に特化したフレームワークだ。スクラムの知識を応用して、開発チームの日常をちょっとリファクタリングしてみよう。 これまで、アジャイル時代のチーム・マネジメント手法として主流になっている「スクラム」の手法を紹介してきました。今回は総集編として「スクラムの基」をコンパクトにまとめます。 そもそもスクラムとは スクラムは、一言でいえば「チームで仕事の進めるための枠組み(フレームワーク)」です。 もともとはソフトウェア開発プロジェクトを成功させる仕組みですが、技術的な要素は取り除かれ、多くのチーム作業に共通して適用できる要素だけが残りました。そのため、ソフトウェア開発以外のチームにも適用できるのが特徴です。 ●バッ

    5分で分かる、「スクラム」の基本まとめ
  • naveでNode.jsのバージョン管理&イベントループ詳説 (2/3):node.jsでサーバサイドJavaScript開発入門(2) - @IT

    naveでNode.jsのバージョン管理&イベントループ詳説:node.jsでサーバサイドJavaScript開発入門(2)(2/3 ページ) ECMAScriptとCommonJSについて補足 前回記事において、「シングルスレッドとノンブロッキングI/Oという特徴をJavaScript自体が持っている」と記載しましたが、間違いです。正しくは、「マルチスレッドとI/O全般をJavaScriptが持っていない」です。 JavaScriptの言語仕様は、ECMAScriptとして策定されています。ECMAScriptには、スレッドやI/Oに関しては記述されていません。しかし、サーバサイドJavaScriptを作成するうえで、I/O機能は必須であるため、各サーバサイドJavaScriptの実装(RingoJSの前身であるHelmaや、Aptana Jaxerなど)が独自に拡張していました。 各自

    naveでNode.jsのバージョン管理&イベントループ詳説 (2/3):node.jsでサーバサイドJavaScript開発入門(2) - @IT
  • 開発者が知っておくべき、6つのUIアーキテクチャ・パターン - @IT

    .NET開発者中心 厳選ブログ記事 開発者が知っておくべき、6つのUIアーキテクチャ・パターン ―― 「matarillo.com」より ―― 猪股 健太郎 2011/12/15 「.NET開発者中心 厳選ブログ記事」シリーズでは、世界中にある膨大なブログ・コンテンツの中から、特にInsider.NET/.NET開発者中心の読者に有用だと考えられるブログ記事を編集部が発掘・厳選し、そのブログ記事を執筆したブロガーの許可の下、その全文を転載・翻訳しています。この活動により、.NET開発者のブログ文化の価値と質を高め、より一層の盛り上げに貢献することを目指しています。 Martin Fowler氏の『GUI Architectures』を訳して公開しようと思ったのだが、FAQページに「PofEAAの続編などは商業出版する予定なので翻訳はしないでほしい」と書いてある。なので翻訳の公開はやめて、「

  • スマートフォンアプリデザインに役立つ 基礎のまとめ!

    スマートフォンアプリデザインに役立つ 基礎のまとめ!:一撃デザインの種明かし(14)(1/4 ページ) 各キャリアが新Android携帯を続々と発表し、スマートフォンへの注目がますます盛り上がる中、アプリケーションも、iPhoneAndroidともに展開するものが増えてきました。 そういった中で、稿ではスマートフォンアプリのデザインのコツをまとめてみます! iPhoneAndroidともに展開しているアプリ3例 まずは、iPhoneAndroidともに展開している有名アプリを3つ紹介します。それぞれのスクリーンショットを見ながら違いを探してみてください。 【1】クックパッド レシピの投稿と検索ができるアプリです。PCサイトの雰囲気はそのままに、トップ画面を旬のキーワードと履歴、検索ボックスのみに絞ったシンプルなUIになっています。要素とコンテンツを極力減らすことで、レシピ検索に集中

    スマートフォンアプリデザインに役立つ 基礎のまとめ!
  • 知るだけで天地の差が出る、テスト仕様書の必須項目&表現方法

    テスト仕様書で絶対に必要な項目リスト テスト仕様書に記述すべきものとして、以下の事項があります。 テストを実施した環境 実施するテストの内容 テストを実施するためのシステムの操作手順 テストの実行結果 個々のテスト項目を識別するための番号や記号(通し番号など) テストを実施した年月日 テストを実行した担当者 障害報告票番号(発生した障害の詳細を開発グループに報告する帳票の識別番号) まずはテスト環境について明記する テスト仕様書の先頭には、「テストを実施した環境」を記述します。ここでは、ハードウェア環境やソフトウェア環境、ネットワーク環境など、「どのような環境でテストを行ったか」を説明します。 ただし、テストを実施した環境を記述するだけでは十分ではありません。「顧客にとって必要な情報は何か」を考えるのです。ここで必要なのは、「要件定義書で規定した環境」との関係が分かることです。 なぜなら、

    知るだけで天地の差が出る、テスト仕様書の必須項目&表現方法
  • アプリ開発ビジネスで独立するなら、知っておきたい「所得税計算」

    今回のテーマ:1人でビジネスを始める Kim氏は、これまでにも定期的に売り上げを報告していて、そのたびにAndroidマーケットからの収入に満足していると書いている。Kim氏は自分がラッキーだったとも書く一方で、「もし今までにもAndroid開発を検討していたのなら、思い切って始めてみることをおすすめする。個人開発者には理想的なプラットフォームだと確信している」と書いている(@IT個人開発Androidアプリで月収116万円に」) iPhoneアプリAndroidアプリ、Webサービスなどを開発して、独立してビジネスを始めるエンジニアが増えているようです。1人でビジネスを始める際には、プログラミングスキルはもちろんのこと、業務で必要とされるものとは異なる種類の会計知識が必要です。 そこで、今回から2回にわたって、「1人ビジネス」における税務について気を付けるべき点を解説します。今回は

    アプリ開発ビジネスで独立するなら、知っておきたい「所得税計算」
  • Rubyの魔術 数々の“スペル”で高度なプログラミング − @IT

    2010/09/13 元JavaプログラマのPaolo Perrotta氏は、Rubyを使い始めた頃のことを振り返り、こう話す。 「私はJavaの世界からRubyに来た当初、とてもハッピーなプログラマでした。Rubyっていいね、かっこいいじゃん! と。ところが、最先端のイケてるライブラリの中を覗いてみたら、分からないところだらけだったんです……」。 RubyKaigi2010で「A Metaprogramming Spell Book」(あるメタプログラミング魔術の書)と題した講演を行ったイタリア人プログラマのPerrotta氏は、Ruby on Railsのソースコードを覗いてみたときの驚きをこう表現する。 「例えばalias_method_chainというメソッドは、一体どこにあるんだと探しました。どこにあるか分からないんです。こんなことJavaではあり得ません。結局、テキスト検索で発

  • 「バグ数には興味ないのだよ」――顧客が喜ぶテスト仕様書とは?

    「バグ数には興味ないのだよ」――顧客が喜ぶテスト仕様書とは?:誰にでも分かるSEのための文章術(11)(1/2 ページ) 「提案書」や「要件定義書」は書くのが難しい。読む人がITの専門家ではないからだ。専門用語を使わず、高度な内容を的確に伝えるにはどうすればいいか。「提案書」「要件定義書」の書き方を通じて、「誰にでも伝わる」文章術を伝授する。 メーカーが機械を納入する際は、耐久試験や性能試験などの結果を添付して、問題がないことを顧客に確認してもらいます。同様にシステム開発においても、テスト結果を顧客に提示してシステムに問題がないことを確認してもらう必要があります。 今回と次回の2回にわたって、「テスト仕様書」の書き方と表現のポイントを説明します。 今回は、「顧客にとって良いテスト仕様書」とは何か、「顧客にとって良いテスト仕様書」にするためには何を記述すればよいのか、テスト仕様書のおおまかな

    「バグ数には興味ないのだよ」――顧客が喜ぶテスト仕様書とは?
  • 次世代デスクトップ転送技術、SPICE入門

    次世代デスクトップ転送技術、SPICE入門:Inside Linux KVM(1)(1/2 ページ) この連載では、オープンソースの仮想化ソフトウェア、Linux KVM(Kernel-based Virtual Machine)とそれを支える技術の最新開発動向を紹介していきます。(編集部) はじめに この連載では、オープンソースの仮想化ソフトウェア、Linux KVM(Kernel-based Virtual Machine)とそれを支える技術の最新開発動向を紹介していきます。KVMは、完全仮想化機能をカーネルに付け加える仮想化ソフトで、Linuxカーネルに標準で含まれることから、いま開発者の注目を浴びています。 Linux KVMのメリットは、ハイパーバイザを持たず、Linux自体をホストOSとするため、ほかのハイパーバイザに比べて性能的に優位なことです。一方で、まだ課題もあります。

    次世代デスクトップ転送技術、SPICE入門
  • HTML+JavaScriptで作れる Windows 7デスクトップアプリの基礎知識

    HTMLJavaScriptで作れる Windows 7デスクトップアプリの基礎知識:楽しいWindows 7アプリ作成入門(3) 「あんなこといいな」「できたらいいな」というアイデアをWindows 7の表現力で具体的な“アプリ”という形にするには、どうすればいいのだろうか? 具体的なコードやデモとともに一から教えます

    HTML+JavaScriptで作れる Windows 7デスクトップアプリの基礎知識
  • なぜTwitterは低遅延のままスケールできたのか 秒間120万つぶやきを処理、Twitterシステムの“今” − @IT

    ユーザー同士のつながりを元に時系列に140文字のメッセージを20個ほど表示する――。Twitterのサービスは、文字にしてしまうと実にシンプルだが、背後には非常に大きな技術的チャレンジが横たわっている。つぶやき数は月間10億件を突破、Twitterを流れるメッセージ数は秒間120万にも達し、ユーザー同士のつながりを表すソーシャル・グラフですらメモリに載る量を超えている。途方もないスケールのデータをつないでいるにも関わらず、0.1秒以下でWebページの表示を完了させなければならない。そのために各データストレージは1~5ms程度で応答しなければならない。 Twitterのリスト機能の実装でプロジェクトリーダーを務めたこともあるNick Kallen氏が来日し、2010年4月19日から2日間の予定で開催中の「QCon Tokyo 2010」で基調講演を行った。「Data Architecture

  • グーグル、Webアプリケーション脆弱性スキャナ「Skipfish」を公開 - @IT

    2010/03/23 米グーグルは3月19日、Webアプリケーションの脆弱性を検査するスキャナ「Skipfish」を公開した。Apache License 2.0の下、オープンソースソフトウェアとして無償で公開されている。 Skipfishは、Webアプリケーションの脆弱性を自動的に検出するツールだ。Nessusなど、ポートスキャンやバッファオーバーフローの有無などを検査するツールとは異なり、Webアプリケーションに特有のセキュリティホールを検査するもので、Webアプリケーションの開発者やサービス提供者向けに公開されている。 具体的には、SQLインジェクションやコマンドインジェクションといった、外部からの不正侵入の原因となりうるWebアプリケーションの脆弱性を検査し、レポートする。また、同じくグーグルがオープンソースで公開している、プロキシサーバ型の脆弱性検査ツール「Ratproxy」のロ

  • Android NDKでJNIを使用してアプリを高速化するには

    Android NDKでJNIを使用してアプリを高速化するには:Androidで動く携帯Javaアプリ作成入門(15)(1/3 ページ) Android NDK最新版でOpenGL ES 2.0をサポート 今回のテーマは「AndroidでJNI(Java Native Interface)を使用したアプリの高速化」です。C/C++やOpenGL ES(※)といったネイティブコードを使うツールなどのセットは、Android NDK(Native Development Kit)として提供されていて、JNIを使用した高速化に欠かせません。 ※OpenGL ES(OpenGL for Embedded Systems)OpenGL ES(OpenGL for Embedded Systems)携帯情報端末や組み込み向けのOpenGLのサブセット。OpenGLは、一般的に普及しているグラフィックス

    Android NDKでJNIを使用してアプリを高速化するには
  • 売れるiPad/iPhoneアプリのためのデザイン必須知識

    売り上げを左右する以前に、デザインが原因でアップルの審査落ちも起こり得ます。基礎データや注意点、素材サイトなど役立つ情報満載! iPad/iPhoneアプリのデザインは、不要? 重要? 2009年11月に登録数が10万を超え、毎日増え続けるiPhoneアプリ(参考:AppleのApp Store、登録アプリが10万を突破)。「そろそろ作り始めてみたいけど、どこから手を出せばいいの?」というデザイナの方もいらっしゃるのではないでしょうか。 カヤック意匠部では、ネタアプリから格的な楽器アプリまで、多くのアプリをリリースしています。そこで今回は、その経験を生かして、iPad/iPhoneアプリ制作を始めるに当たってデザイナが押さえておくべき基的なポイントを、まとめて紹介します! 「デザインを一切しなくても、アプリは作れる」 と、いきなりですが、デザイナがいなくてもアプリは作れます。アップ

    売れるiPad/iPhoneアプリのためのデザイン必須知識