2017/3/13 iOS Test Night #3 https://testnight.connpass.com/event/49561/
![開発を効率化するテストのデザインパターン](https://cdn-ak-scissors.b.st-hatena.com/image/square/1e93a55b8ffaaf6367850e00edce35c780af56cf/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fff6b86ca1370490e8d4bfd4fd9f5ff5a%2Fslide_0.jpg%3F7672167)
どうも、SIerのシステムエンジニアです。 システムエンジニア Advent Calendar 2016の11日目です。 10日目は deaf_tadashiさんの「聞こえないシステムエンジニアが心がけていること」でした。 はじめに 直近は金融系の新サービスのバックエンド側の開発をしていました。 会社で利用する言語はほとんどJavaで、iOSだとObjective-Cを遊び程度でさわったことがある程度です。 現在チームメンバーは5人で、スクラムで開発を進めています。 ※ 厳密にはふつうの受託開発のやりかた をチームに合わせて拡張したものです ほとんど経験の無いiOSアプリケーション開発をいきなり任されたので、基本的には以下のような方針で物事を決めています。 世の中で実績があること アーリーアダプターしか触っていないようなものは避ける ある程度安定していること とはいえ新しい技術であること
<この記事は「Money Forward Advent Calendar 2015」の22日目の記事です> この記事は、iOS Clean Architectureと実際にコードへ適用した内容について紹介します。 コードについては、改善の余地があるため随時修正していくと思います。 → github: https://github.com/koutalou/iOS-CleanArchitecture iOS開発においてよくある問題点 「ビジネスロジックはModelに置くべき」と言うが、開発者によって理解や意見がバラバラで統一的な実装ができない 度重なる仕様変更や複雑な仕様に対応するためにViewControllerや特定のModelが肥大化し、ビジネスロジックの本質を見失う MVC,MVP,MVVMだけで考えると、どこかのレイヤが複数の責務を持つことになり依存度の高い複雑なコードが生まれてし
今開発しているPlayer!で、チャット系のリアルタイム更新処理が必要となったので、色々調べながらまとめています。 分量が多いので、とりあえずまずは小出しにAppleのPUSH通知の特徴・ノウハウについてまとめたものを公開します。 → 「リアルタイム更新処理」全体にフォーカスした記事も書きましたヽ(・ω・`) iOS - チャットなどリアルタイム更新が必要なスマフォアプリの構成について考えてみた - Qiita アプリが終了状態になっていてもサーバーから通知出来る唯一の手段 まず当たり前のことからですが、最大の特長だと思います。 この理由によって、双方向通信などを併用するにしてもPUSH通知対応は必須です。 (サーバー経由でなければ、位置情報トリガーなど他にもいくつか終了状態から起こす方法は存在します。) ユーザーにPUSH通知を不許可にされたら届かない さらに、初回の確認で不許可にされた
Want to stay up to date? For announcements of new conferences, useful materials, and inspiration - subscribe to us!
iTunes Connectとは App Store上の情報、契約や支払い関係を管理できます。 それだけだと開発者には必要ないように思えるかもしれませんが、XcodeからアプリをアップロードするにはiTunes Connectのアカウントが必要です。AdminもしくはTechnical権限で行えます。 ユーザの役割について詳しくは、iTunes Connect デベロッパガイドを参照してください。 ちなみに、iTunes Connect > アカウント情報 > 役割タブでわかりやすく表になっているほか、Apple公式「アプリケーションの配布に関するガイド」の134ページにiTunes Connectにおける役割と責任が記載されています。 必要なもの Admin権限のアカウント 追加するメンバーのApple ID 20分〜30分 メンバーの追加 iTunes Connectの ユーザと役割を
しかし最近では、この分野に大きな変化が起きています。そのきっかけが、マルチプラットフォーム開発を可能にするHTML5ハイブリッドアプリの登場です。HTML5ハイブリッドアプリとはWeb技術であるHTML5を用いて作られるネイティブアプリで、プラットフォームに依存しない「クロスプラットフォーム」であることが最大の特徴です。 Visual Studioでも、このHTML5ハイブリッドアプリの開発の対応がどんどん進んでいます。Visual Studioの優れた開発環境を使い、iOSやAndroid向けのネイティブアプリが開発できます。そこで本稿では、Visual Studio上でHTML5ハイブリッドアプリ開発を実現する「Monaca for Visual Studio」を紹介し、実際にアプリ開発をしていきたいと思います。 対象読者 今回の対象読者は、以下のとおりです。 JavaScriptによ
確定申告は近所の地域区民センターで提出する派、@yimajoです。 iOSアプリ開発者に最近の開発スタイルを訊いてまわる「iOSアプリ開発の現場で訊いてみた」待望の6社目に行ってきました。 6社目はクラウド会計ソフトfreeeを作られているfreee社! クラウド会計ソフトfreeeとは何か freeeは銀行やクレジットカードのweb明細から簡単に帳簿を作成したり、青色申告決算書や確定申告書Bの出力に対応しているWebベースのアプリケーションです。 従来の青色申告用のアプリケーションはWindows専用が主流だったため、Macを使うiOSアプリ開発者ならfreeeを使ってる方も多いのではないでしょうか? 訊いてきたこと インタビューに応じてくださったのはエンジニアの@yonekawa、@yo_waka、広報担当の@NaoMaemuraの3人。 とくに最近@yo_wakaはfreee社でのR
きっかけ iOSアプリ公開の壁となっているプロビジョニング周りですが、ハマりまくったので覚えている内に図にしました。 難しくしてる理由 難しくしているのは、この辺が理由ではないかと思います。 iOS Developerサイトでの画面・操作手順がしょっちゅう変わる Xcodeも、バージョンによって画面・操作手順が変わる ということで、書籍やWebでのノウハウがすぐに古くなってしまいます。ググるといろんな情報が出てきてしまい、かえって混乱します。 また、開発時のiOSデバイスはXcode側である程度自動的にやってくれるのですが、それがかえって分からなくしているような気がします。 概念図 ということで、結局、概念を理解してしまうのがいいのではないかと思い、図にしてみました。 (より厳密に実行端末が判断されるAd Hoc配布をベースに記述) ざっくり手順(※個別の操作は省略) 鍵ペア(秘密鍵/公開
AppDelegateはアプリ全体のライフタイムイベントを管理するためのクラスですが、その性質上、様々な処理が書かれやすいです。 しかし、あらゆる処理が書かれ肥大化していくと、見通しが悪くなってメンテナンスがしづらくなったり、チームで開発してる場合はコンフリクトが起こるなど開発速度に支障をきたすようになってしまう場合があります。 そこで、この記事では、そんな膨れがちなAppDelegateを綺麗な状態に戻すための方法をいくつか紹介します。 1. AppDelegateの責務外の処理は他クラスに移す AppDelegateの主な責務はライフタイムイベントの管理です。具体的には「起動」「停止」「バックグラウンド状態の切り替わり」などなどUIApplicationDelegateで定義されているような処理です。 にもかかわらず、例えば全Controllerから触れる値を定義したいなどの理由で、責
背景 iPhone も年々デバイスサイズが大きくなっていき、左上のナビゲーションバー上のボタンを片手で押すことが困難になってきました。そのような時代においてはスワイプジェスチャーによるナビゲーション操作が今まで以上に重要になってきます。また、最近では情報の階層を分かりやすく表現するためにトランジションもどんどん工夫されています。トランジションが複雑になればなるほどその操作も複雑になるため、分かりやすさと使いやすさを両立するためにインタラクションを工夫する必要があります。 そんな2014年の終わりとして現時点での情報閲覧系 iOS アプリでの戻る(閉じる)操作の種類をまとめてみました。 遷移(Push)時のトランジションがデフォルト(新しい画面が右から左に出てくる) Screen Edge Swipe(デフォルトの Pop トランジション) デフォルトの Push トランジションで遷移した画
この記事はSwift-2 Advent Calendar 2014の23日目。Swift本を紹介しようと思ったら他にも色々書いてしまった。 Swiftで関数型プログラミング 原題Functional Programming in Swift。ベストプラクティスを追い求めてるobjc.ioの人たちが書いた本。ebooks版(PDF, ePub)が安く、なんとダウンロードしたサンプルコードがPlaygroundsで実行できる。 きっかけはQuickというOSSの開発者から薦めてもらった @yimajo enumとswitchはSwiftの割といいところだと思う!でも自分もFunctional Programming for Swiftを読むまでは知らなかった and 理解できていなかった — Brian Gesiak(もどかしい) (@modocache) 2014, 11月 18 サンプル版
こんにちは。アプリケーションエンジニアのid:sakaharaです。 この記事ははてなエンジニアアドベントカレンダー2014の20日目です。 昨日はid:wtatsuru によるはてなにおけるサーバリソース可視化とMackerelでした。 今日ははてなのiOS開発で利用しているオープンソースのライブラリやサービスも含め、開発をよりスマートにしてくれる様々なものを紹介したいと思います。 パッケージ管理 CocoaPods (MIT License) まずライブラリ管理をするための管理ツールとして欠かせません。 最近ではSwiftに対応したCarthageも登場していますが、CocoaPodsのSwift対応版の開発も進んでおり そのまま使い続けるのもよいと思います。 ライブラリ AFNetworking (MIT License) 改めて紹介する必要はないほどの定番のHTTPネットワーク通信
日本では、2013年4月末に正式リリースされた無料の本格英文チェッカー「Ginger(ジンジャー)」。リリースを伝えた記事は大反響を呼び、英文ライティングを修得することへのニーズを感じさせました。Gingerの特徴は、その特許取得済みの神経言語プログラミング(NLP: Neuro Linguistic Programming )を使ったテキスト解析エンジン。入力中の英文の文脈を読み取りながら、表現などをサジェストしてくれることが最大の強みです。 Ginger Keyboard のリフレーズ機能 11月13日、Gingerが新たにリリースしたのが、iOS 8 と Android 向けの無料のキーボード「Ginger Keyboard」です。 Ginger Keyboardは、自分のスマホのキーボードに設定することで、英文をタイプしながら、そのスペルや表現などをチェックしてくれるもの。例えば、
iOSとの比較つき!Androidでこんなアプリ,こんな機能を作りたかったらこれを見ろ!作りたいアプリに対応するクラス、ライブラリのまとめ!iPhoneAndroidiOS by @mixiappwchr 最近Androidのほうも久しぶりがっつりやっているため、簡単ですがまとめてみました。 環境編 IDEは何を使えばいいの? 今から始めるにはnatvieのコードとかを書かない限りAndroid Studioを使いましょう 最近ようやく1.0が出ました。 Android Studio http://developer.android.com/sdk/index.html 検証用のエミュレータが遅いよ! iOSと違う点ですが、Androidはエミュレータの遅さに定評があります。Intel HAXMでの高速なエミュレータか、Androidの仮想環境を提供してくれるGenymotionを使いまし
私はPHP,Ruby,Javaなどを学生時代に書いていましたが、新卒での最初の仕事はSwiftでiOSアプリを開発することでした。もし私がもう一度始めから勉強するならばこういう手順でするだろう、ということを書きたいと思います。 はじめに ある程度他の言語でプログラミング経験がある方ならば、Swiftは非常にとっつきやすい言語ですので基本的な文法はすぐに理解ができると思いますので、Storybaord(AutoLayout)、UIKit、Xcodeの使い方に多くの時間を使いましょう。文法をちまちま写経していくよりも、作りたいものがあるならばそれを作りながら学んでいくのが一番です。以下に文法・UIKit・Stoaryboardを学ぶ上でのオススメのサイトを紹介していきたいと思います。 文法 ドットインストール(Swift入門) Swiftのレッスンがようやく登場しました。筆者が勉強し始める前は
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く