タグ

ブックマーク / qiita.com (188)

  • Bluetooth Low Energyのカレンダー | Advent Calendar 2014 - Qiita

    URLYou can post either your article on Qiita or your blog post. About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    Bluetooth Low Energyのカレンダー | Advent Calendar 2014 - Qiita
    saiten
    saiten 2014/12/08
  • iOSとの比較つき!Androidでこんなアプリ,こんな機能を作りたかったらこれを見ろ!作りたいアプリに対応するクラス、ライブラリのまとめ! - Qiita

    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を使いまし

    iOSとの比較つき!Androidでこんなアプリ,こんな機能を作りたかったらこれを見ろ!作りたいアプリに対応するクラス、ライブラリのまとめ! - Qiita
    saiten
    saiten 2014/12/08
  • なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita

    追記: 情報が色々と古くなったため、2020年に書き直した版へのリンクを張っておきます。 この記事は VirtualDOM Advent Calendar 2014 - Qiita の初日です。 初日ということで、基調講演風に、Virtual DOMとはなにか、なぜ僕はこんな興奮しているのか!という話から。 Virtual DOMとはなにか 既存の概念で当てはめると、JavaScriptのMVC, MVW(Whatever)フレームワークのViewに位置します。が、その程度では終わりません。仮想DOMとは世界を革命する力であり、このjQueryのDOM操作で汚れきったフロントエンドを救う救世主なのです。 現時点で自分が知っている限りは、以下の実装を指します。 facebook/react 最も使われてるFacebookの実装 Matt-Esch/virtual-dom Altenative

    なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita
    saiten
    saiten 2014/12/01
  • SwiftTask(Promise拡張)を使う - Qiita

    使用例 SwiftTaskでタスクを定義する際(初期化クロージャ内)、直接Grand Central Dispatch等を使って非同期処理を行うことも可能です。 が、Alamofire(ネットワークライブラリ)に代表されるような、 obj.setProgressHandler() (callback) obj.setCompletionHandler() (callback) obj.pause() obj.resume() obj.cancel() のAPIの形に「別クラスで一旦ラップする」方が、より簡単に実装することができます。 Alamofireを使った例 typealias Progress = (bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) // define ta

    SwiftTask(Promise拡張)を使う - Qiita
    saiten
    saiten 2014/11/27
  • iOSのCore Bluetooth / BLEの通信速度 - Qiita

    Bluetooth Low Energy(Bluetooth4.0, 以下BLE)の通信速度 について調査、 実測 してみたメモ。 (2015.3追記)この記事は古く、書いた当時はBLEについての知識も乏しかったので内容には多分に誤りが混じっている可能性があります。 調査 まず "BLE 通信速度" でググってみました。 BLE(Bluetooth Low Energy)とは?について真面目に書く BLEでは「無接続状態」から→「接続」→「データやり取り」までの速度を圧倒的に早くすることで 普段は頻繁に「つないで」「死んで」「つないで」「死んで」を繰り返している。 ホントに必要なときしか動かないことで消費電力を最適化しているわけだ。 そうすると気になるのは送信側でのデータ入力から受信側での受け取りまでのディレイだが、 接続自体のディレイは6ms程度、なのできっとデータ送受信トータル20-3

    iOSのCore Bluetooth / BLEの通信速度 - Qiita
    saiten
    saiten 2014/11/19
  • Swiftをシェルスクリプトのように使う一番簡単な方法 - Qiita

    #!/usr/bin/swift import Foundation typealias Failure = (NSError!) -> Void typealias ResultBlock = (NSData!, NSError!) -> Void /// JSONObjectWithDataの戻り値として使用する enum JSONObjectWithDataResult { case Success(AnyObject) case Failure(NSError) } /// NSDataをJSONオブジェクトに変換し、JSONオブジェクトまたはエラーのいずれかを返す func JSONObjectWithData(data: NSData) -> JSONObjectWithDataResult { do { let json = try NSJSONSerialization.J

    Swiftをシェルスクリプトのように使う一番簡単な方法 - Qiita
    saiten
    saiten 2014/11/12
    おー
  • WKWebViewで躓いた10つのまとめ - Qiita

    WKWebViewについてわかったこと。iOS 8.1.0の時点での情報です。 StackOverflowやDeveloperForumsからの情報と、私がOhajiki Web Browserを開発する過程で得た知識を短めにまとめてみました。 これ以外にもまだまだ細かい部分があるかと思いますが、より良い方法や補足などがありましたらコメント欄で是非とも教えていただければ幸いです。 iOS 9での変更点はこちら: iOS 9 WKWebView 主な変更点をざっくり tmpフォルダ以外は file:/// を使ってアクセスできない iOS8.0.2からtmpディレクトリ以下のファイルに fileプロトコルでアクセスすることが可能になりましたが、それ以外のディレクトリからのアクセスは無効となっています。WKWebViewが普及しない一番の要因はこれではないでしょうか。 こちらで試すことが出来ま

    WKWebViewで躓いた10つのまとめ - Qiita
    saiten
    saiten 2014/10/30
  • ファミリーシェアリング + 課金を確認 〜 Sandboxテストユーザー 編 - Qiita

    はじめに ファミリー共有(シェアリング)の機能である、購入時の問い合わせ機能を確認するための試験環境の構築が目的です。 すでに対応しているアプリもいくつか出ているとのことで 仕様把握とテスト環境をつくるのけっこう大変です。 Sandboxの環境が出来た方は ユーザの追加フローについてこちらに書きましたのでご参考に http://qiita.com/nofrmm/items/44daa7146f0b59ea1865 ご理解をいただくために 現時点でSandbox上確認した動作を共有しますと 検証中の端末スペックはiOS8.0系です。 子供が依頼して親に依頼する→親に通知は届かなかったため、子供の端末で親のIDを入れる OSのマイナーバージョンでも動作が異なると想定してiOS8.1でも動作確認をします。 ここに記載した設定から確認した内容については、私の環境下では問題視していなくても 実行され

    ファミリーシェアリング + 課金を確認 〜 Sandboxテストユーザー 編 - Qiita
    saiten
    saiten 2014/10/28
  • Swiftコーディング規約@Wantedly - Qiita

    はじめに Swiftのコードは多様な記述の仕方ができるので柔軟でかつ表現力もありますが、チームで開発を行うとどうしても記述の仕方が統一できず可読性も上がりません。弊社(Wantedly)でSwiftのアプリを開発した経験をもとにアプリ開発におけるコーディングスタイルガイドを作成しました。このコーディング規約がベストプラクティスだというわけではなく、Swiftもまだまだ手探りなところもあるので、参考情報としてご参照ください。また、規約の範疇ではないですがエラーになりやすい記述も合わせてフォローしています。 バージョン v0.3 改版履歴は文末を参照ください。 コーディング規約の必要性について Swiftはプログラマがリスクを取ることによってより簡素に端的に記述ができたり、型推論が強力なので型の明記を省略して記述ができます。チームでSwift開発を行う場合は、詳細に記述するのか、省略して記述す

    Swiftコーディング規約@Wantedly - Qiita
    saiten
    saiten 2014/10/03
  • Swiftで自分のクラス名を表示する方法 - Qiita

    NSOdjectのサブクラスのdiscriptionメソッドとかで自分のクラス名を表示したいと思ったのだけど、 Swiftではself.classが使えない。 discriptionメソッドで使うだけなので別にクラス名直書きでもいいのだけれど、 なんだかすっきりしないので調べてみた。 コンソール出力や、Unit testなどでクラスを比較するときに使える。 サンプルプロジェクト 実行結果 (コンソール出力) Class name : PrintProjectName.PrintClassName or Class name : PrintProjectName.PrintClassName

    Swiftで自分のクラス名を表示する方法 - Qiita
    saiten
    saiten 2014/09/13
  • 次世代mobile版データベース"Realm"を使ってみた - Qiita

    1ヶ月以上前にHackerNewsで話題になっていたRealmというmobile用のDBを使ってみた。 使い方も含めて書いておく。 ※今回はobjective-cで使ってますが、swiftでも勿論使えます! 何故作ったか? 紹介ページの要約を見てもらえれば詳しくは分かるが、mobileのDBって2000年にでたSQLite以降全然刷新されないよねっていう内容が書いてある。 確かに、mobileのあり方は昨今大幅に変わって来ているのにDB周りは出てないみたい。 自分はwebのアプリケーションを普段は作ってるので、こっち側はResis等のNOSQLが注目されていたり技術的な流れは結構起きてるのに、、、 確かにソシャゲー作ってる人がSQLiteは遅くてtextデータで保管して・・・みたいな話しを聞いた事がある。 まぁなんせ、時代の流れに適したDBを作りたいとの事ね。 何が凄いの? Yコン出身者が

    次世代mobile版データベース"Realm"を使ってみた - Qiita
    saiten
    saiten 2014/09/02
  • Swift+有限オートマトンでPromiseを拡張する - Qiita

    前回のSwiftで有限オートマトン(ステートマシン)を作る - Qiitaの続きです。 ステートマシン(SwiftState)を実際に使うにあたり、何か分かりやすいサンプルを作った方が良いと思い、今回、JavaScriptでおなじみのPromiseクラスを再発明してみました。 Promiseについて Promiseについては、こちらの記事が参考になります。 JavaScript Promiseの JavaScript Promises: There and back again - HTML5 Rocks 一般的なPromiseライブラリの状態遷移は、Pending => Fulfilled or Rejectedの2パターンがあります。 が、機能としてややシンプルすぎる&n番煎じ感が否めないので、新たにProgress、Pause、Cancelといったインターフェースを追加して、複雑な

    Swift+有限オートマトンでPromiseを拡張する - Qiita
    saiten
    saiten 2014/08/28
  • アクセストークンに有効期限を設けるべきかどうか - Qiita

    OAuthプロバイダを提供することになったとして、アクセストークンに有効期限を設けるべきかどうかについて考えたい。OAuth 2.0の仕様にはアクセストークンの期限切れに関係する仕様が定義されているし、セキュリティをより強固にするためにアクセストークンは一定期間で期限切れにするべきだという主張があったと思う (確認していないので無いかもしれない)。しかしながら、例えばGitHub API v3ではアクセストークンに有効期限を設けていない。この投稿では、アクセストークンの有効期限に関係して起こり得る問題を取り上げる。 アクセストークンに有効期限を持たせておくとちょっと安全 アクセストークンが悪意のある第三者に漏洩してしまった場合、そのアクセストークンに認可されているあらゆる操作が実行可能になってしまうという問題がまず存在する。ここでもしアクセストークンに有効期限が存在していたとすれば、その操

    アクセストークンに有効期限を設けるべきかどうか - Qiita
    saiten
    saiten 2014/08/27
  • Swiftの循環参照問題におけるunownedとweakの使い分けについて - Qiita

    循環参照するか、しないかの切り分け 循環参照するか、しないかの切り分けはエンジニアが考慮する必要があります。この切り分けはObjCと同様なので、ここでは詳細には触れません。 ちなみに、Xcode6 Beta5のSwiftではコンパイルワーニングで循環参照を知らせてくれません。とはいえ循環参照のコンパイルワーニングはObjCでも全部網羅されていないので、最終的にはエンジニアが考慮する必要があるのはかわらないのですが。 対象の変数をweakで対応し、実行時に変数がnilになる可能性の切り分け そもそも、実行時に循環参照する対象の変数がnilになる可能性で判断ではなく、対象の変数定義がOptional定義かどうかで判断できないか 常にOptional定義かどうかで判断できないのではと思っています。例えばselfはself!としてunwrapしてアクセスしないので、selfはOptionalではな

    Swiftの循環参照問題におけるunownedとweakの使い分けについて - Qiita
    saiten
    saiten 2014/08/25
  • Swift開発でXcode6 Beta5にアップデートしたらたくさんコンパイルエラーになった - Qiita

    Xcode6 Beta4 から Xcode6 Beta5にアップデートしたらいくつかコンパイルエラーになったのでメモしておきます。 init メソッドは override が必要になった • Overrides of a designated initializer must be marked with the 'override' modifier. (17892845 Does not implement its superclass's required members 以下を追加します。 required init(coder aDecoder: NSCoder!) { super.init(coder: aDecoder) } • The required modifier is written before every subclass implementation of a

    Swift開発でXcode6 Beta5にアップデートしたらたくさんコンパイルエラーになった - Qiita
    saiten
    saiten 2014/08/05
  • iOSアプリ開発の現場で訊いてみた!ユビレジ編 - Qiita

    自分が他社のiOSアプリ開発者と話す時にいつも同じことを聞いていたのでそれをQiitaにまとめていましたが、実際に他社の開発の現場でインタビューをしてくるというシリーズになりました。 記念すべき1社目はユビレジ社! ユビレジとはなにか 私の分かる範囲でユビレジというものについてすごく平たく説明すると、iPadを利用したお店のレジとそれを管理するウェブ上のシステムみたいな感じだと思います。そもそもお店のレジスターっていうものは単純な売上の計算のためだけのものと、商品や顧客情報をひもづけるPOSレジ(POSはPoint of sale)と呼ばれるものがあって、このPOSレジをiPadとウェブで実現するぜ!ということでしょう。 訊いてきたこと ユビレジ社ではiOSアプリ開発をしている人で知らない人はいないという@kishikawakatsumiさんと、インターネットで有名な@laisoさんを中心

    iOSアプリ開発の現場で訊いてみた!ユビレジ編 - Qiita
    saiten
    saiten 2014/07/25
  • UnityでXcodeのプロジェクト設定を自動化したい(c#でPostProcessBuildを書く場合) - Qiita

    Unity で iOS アプリを作っていると、一度はXcodeのプロジェクト設定を自動化したいと思うはず。例えば、Framework を追加したり、Other Linker Flags に "-ObjC" を追加したり。 ググると Ruby を使う例はたくさん出てきますが、C# を使う例はあまり見つからなかったのでまとめてみました。 仕組み Unityプロジェクト設定を自動で行うには PostprocessBuildPlayer という sh コマンドまたは Perl スクリプトを使う方法 PostProcessBuild Attribute でビルドを検知してメソッドを実行する方法 があります。 http://docs-jp.unity3d.com/Documentation/Manual/BuildPlayerPipeline.html 今回は C# を使いたかったので後者の方法を

    UnityでXcodeのプロジェクト設定を自動化したい(c#でPostProcessBuildを書く場合) - Qiita
    saiten
    saiten 2014/07/18
  • Swiftで面倒なJSONの取り扱いをさらに10倍便利にするclass JSON - Qiita

    Swiftで面倒なJSONの取り扱いを10倍便利にするSwiftyJSONをもってしても、まだJavaScriptよりも面倒だったのが悔しかったので書きました。 https://github.com/dankogai/swift-json/ Synopsis AnyObjectなSwiftオブジェクトも、こうして JSON Stringにできます。 let obj:[String:AnyObject] = [ "array": [JSON.null, false, 0, "",[],[:]], "object":[ "null": JSON.null, "bool": true, "int": 42, "double": 3.141592653589793, "string": "a α\t弾\n?", "array": [], "object": [:] ], "url":"http:/

    Swiftで面倒なJSONの取り扱いをさらに10倍便利にするclass JSON - Qiita
    saiten
    saiten 2014/07/16
  • Xcode6で追加された、XCTestの新機能 - Qiita

    2014年のWWDCでは、"Testing In Xcode 6"という講演で XCTestの変更点について、以下の通り説明されています。 * 互換性の向上 * 非同期テスト用APIの追加 * パフォーマンス評価用APIの追加 この記事では、非同期テスト用APIの追加・パフォーマンス評価用APIの追加について説明します。 非同期テスト用APIの追加 XCode6のXCTestでは、非同期テスト用のAPIが追加されました。 バックグラウンドで実行するような処理やネットワークのI/Oなど、非同期な振る舞いをテストするときに使えます。 書き方 非同期な処理を実行するときに、期待する処理が完了したタイミングでXCTestExpectationのfulfillを呼び出すよう実装します。 そのときにテストケース側ではwaitForExpectationsWithTimeout:を呼び出して、期待する処

    Xcode6で追加された、XCTestの新機能 - Qiita
    saiten
    saiten 2014/07/11
  • Xcode6とSwift&iOS8のアプリ開発で踏んだ地雷たち - Qiita

    Xcode6で新規のアプリを開発した時に気づいたことをまとめます。 アプリの仕様は以下のとおり。 開発言語はSwift Cocoapodsで既存Objcのライブラリを利用 デプロイターゲットはiOS8以上 Storyboardを利用 AutolayoutとSizeClassesを利用 開発環境は以下のとおり。 Xcode6はBeta2を利用 検証実機はiOS8 beta2をインストールのiPhone5 【頻度中】コンパイルエラーXXXHeaderファイル has been modified since the precompiled header fatal error: file '/Applications/Xcode6-Beta2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPho

    Xcode6とSwift&iOS8のアプリ開発で踏んだ地雷たち - Qiita
    saiten
    saiten 2014/07/07