iOSアプリケーションでWebSocketを使った機能の実装をすることになったが、 全く使ったことが無いので時間があるうちにテスト。 Swiftもいい加減使わないといけないので、その勉強も兼ねて。 基本的にはすでにQiitaでまとめられていた記事があったが、一部コマンドなど 補足で調査しながら作業することになったので別途まとめて見る。 やりたいこと ローカル環境で、WebSocketを使った通信のテスト 記事の対象 ・ サーバーとか触ったことないのでNode.jsとか全然わからない人。 参考 webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話 チャットなどリアルタイム更新が必要なスマフォアプリの構成について考えてみた この記事から、とりあえずSocket.ioを使って見ることに。 SwiftでSocket.io (nodejs利用) Socket.
Firebaseとは 私はiOSデベロッパーですので、WWDCはジョブス時代から見てますが、Google I/Oは一度も見たことがありませんでした。野外コンサート会場みたいなんですね。。。グーグルのCEOスンダーはインド人です。マイクロソフトのCEOもインド人ですね。ティムクックもインドを訪問し、インドで4000人のエンジニアを採用すると発表しましたが、インドの勢いはすごいですね。 Parseサービス終了に伴う、受け皿のFirebaseです。AWSサービスにもかぶります。Google I/Oにて、リノベートされたとのことでしたので、メール&パスワードログインと、Googleログインを使ってみました。 メール&パスワードログイン Podでプロジェクトを作成するまではkoogawaさんのページをご覧ください。 Podfileに下記を追加し、pod update してください。 pod 'Fir
最近 Qoncept では TensorFlow を使った案件が続いており、その中で TensorFlow を iOS 上で使いたいことがありました。 ぱっと浮かんだ選択肢は次の二つでした。 TensorFlow を iOS 用にビルドして C++ の API を Swift から叩く 学習は TensorFlow / Python で行って、テンソルの計算だけを iOS / Swift でシミュレーションする しかし、前者ついては、まだ TensorFlow を iOS 用にビルドできなさそうでしたしできるようになりました(コメント参照)、たとえできたとしても C++ の API を Swift から叩くのは辛そうです。 TensorFlow がありがたいのは学習時の自動微分等の機能であって、学習済みのモデルを利用するときはただテンソルの計算をしてるだけです。別に学習を iOS 上でやり
VaporでサーバーサイドSwiftに入門してみる。 (swiftenv + Swift Package Manager利用)SwiftSwiftPackageManagerVaporSwiftenv サーバーサイドでSwiftが動くようになってきていますね。 あまり積極的にSwift界隈の流れを追えてはいないけど、サーバーサイドでSwiftが動くようになってきてWebエンジニアたちも今後注目されていくだろうと期待しています。 そんな感じの状況なので少し入門してみたいと思います。 ゴールはVaporでサーバーを立てるHello worldです。 ※Swift環境構築周りでごちゃごちゃやってしまった気がするのでミスってる記述があるかもしれません 追記: これを先に読んだ方がいいと思います。(Swiftで書かれたWebフレームワークを試すにあたっての注意点 ) Swift 3.0-devを試す
前提条件 push通知を行う際には以下の 内容を実行、完了済である必要があります。 AWS側 AWSのアカウントを持っていること AWSのSNSの設定が完了していること Swift側 AWSのSDKを導入していること AWSのSDKを使ってメソッドが利用出来ていること Rails側 既にRailsのアプリケーションをサーバーに配置済であること まだこのあたりを実行されていない方は以下の記事を参考に。 参考サイト SwiftでAWS SDKを使ってPush通知 Swiftアプリでも確認済み!RubyスクリプトとAmazon SNSで複数デバイスへのpush通知 バージョン Swiftのバージョン:1.2 Rubyのバージョン:2.1.5 Railsのバージョン:4.1.7 手順 1.GemファイルにAWSのgemを追加する gemの管理をしたいため Gemfile production: a
前回の記事の続編です。 HFS+ における Modified NFD Apple が OS X でファイルシステムとして採用しているHFS+では,ファイル名を原則としてNFDで分解して保持するようになっています。 2種類の「が」は分解形で統一される たとえば,ユーザが が.txt(「が」はU+304Cの1文字)というファイル名でファイルを保存しても,ファイルシステム上は が.txt(「が」は U+304B U+3099 の合成文字)として保存されます。 実際,が.txt(「が」はU+304Cの1文字)としてファイルを保存した後,Finderでファイル名変更モードに入り,「が」という文字をコピーすると,U+304C ではなく,U+304B U+3099 という2文字がコピーされるのが確認できます。 → か(U+304B) + 結合用濁点(U+3099) がコピーされる CJK互換漢字を置き
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最新のRedMonkプログラミング言語ランキング1 によると、Swiftの成長ぶりと潜在的なポテンシャルは驚異的とのことだ。GoとSwiftは、トップ10に食い込む可能性もあると見られている。 また、トップ20圏外にいるが、今後の動向を見守るべき言語として、Elixir、Julia、Rust、TypeScriptが挙げられている。 ベストランキング 開発者が採用するプログラミング言語を調べるために、RedMonkはStack Overflowのディスカッション数や、GitHubで使用されている言語を分析している。RedMonkのアナリス
Swiftのお勉強がてら音楽を再生できるようにしてみました。 元記事:http://sawapi.hatenablog.com/entry/2014/06/07/023814 つくったもの だいぶシンプルな音楽プレイヤー。 iPhoneに入ってる曲を取り出してタップすると再生します。 ソースコード ファイル構成 AppDelegate.swift・・・そのまま ViewController.swift・・・Viewの処理 SongQuery.swift・・・iPhoneに入っている曲の情報を返す Main.storyboard・・・NavigationControllerとTableViewおいただけ コードの概要 曲リストの取得 func get() -> AlbumInfo[] { var albums: AlbumInfo[] = [] // アルバム情報から曲を取り出す var a
Swift3.0ではC言語のようなfor文が使えなくなります Swiftがオープンソースになり、現在のSwift2系からSwift3系にバージョンアップする際にどのようなアップデートがあるかを把握できるようになりました。 バージョンアップに盛り込まれる機能、削除される機能はどのように決められるかというと、以下のような流れで決められているようです。 提案 レビュー 採択 これらの提案はApple内部の方だけでなく、Apple社外のユーザーからも提案が可能になっています。 これらの提案の中で特に象徴的なことの一つとして、C-Styleのfor文が削除というものがあったのですが、Swift3.0で削除されることが正式に決まっています。 Remove C-style for-loops with conditions and incrementers このproposal(提案)はApple社外の
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? これはなに Embedded Framework を使えば Swift で名前空間を利用できます。 それによりレイヤーを意識した設計になりクリーンな開発をしていきましょう。 また、今日書こうと思っていたネタが別のアドベントカレンダーの1日目に書かれていたのでリンクを貼ります。まとまっていて大変良い記事です。 http://qiita.com/mono0926/items/e29cd17789fd1d1548aa MVC? DDD? さて、アプリの設計の話です。 スピード重視・可読性無視の個人開発ならば設計などない方が早く完成するし、自分
2016年版はこちら 2016年反響が大きかったフロントエンド技術記事まとめ こんにちは、ICSの鹿野です。 普段、モバイルアプリ・Webサイト制作、勉強会登壇等をやっているのですが、2014年からICS MEDIAやQiita等でのフロントエンド技術の記事執筆を始めました。内容はHTML、JavaScript、Swift、タスクランナー、Photoshop等で、初学者にもわかりやすいようにできるだけ丁寧な記事を心がけています。 今回はこの1年で執筆した記事の中で、PV数、SNSのシェア数の点で反響が大きかったものをご紹介します。 #Photoshopについて Web用保存は古い!? JPEG画質が改善したPhotoshop CC 2015の新方式の画像保存機能まとめ – ICS MEDIA Photoshop CC 2015から新しく実装された新しい画像書き出し形式の比較記事です。GIG
【追記】SFSafariViewControllerが出た当初は本記事のようにほぼカスタマイズ性が無かったですが、元々のコンセプトはブレない範囲で少しずつカスタマイズ性が提供されています。 こちらなどご覧ください: What's New in Safari View Controller - WWDC 2017 - Videos - Apple Developer 以下、iOS 9 SDK時点での SFSafariViewController についてです。 UIWebView・iOS 8で追加されたWKWebViewに加えて、iOS 9ではSFSafariViewController というものが追加されました。 手軽なAPIなので、今作っているPlayer!にもちょちょいと組み込めそうです( ´・‿・`) ※ 本記事は Apple による公開ドキュメントを元に構成しています SFSaf
SwiftはOptimization Levelによって顕著にパフォーマンスに差が出ます。 参考: Apples to apples, Part II · Jesse Squires また、Dynamic Dispatchでの呼び出しもオーバーヘッドになります。 参考: Swiftのfinal・private・Whole Module Optimizationを理解しDynamic Dispatchを減らして、パフォーマンスを向上する - Qiita ドキュメントなど読み解けば「どういう記述をすればどうコンパイルされるか」は大体予測付きますが、やはり実際にその予測通りになっているかは確認しておきたい時があります。 特にロガーなどグローバルに呼び出されるものの場合、そういう確認大事だと思っています。 (この記事もロガーの検証が元々の目的で、そのために調べてまとめています。ロガーについても記事
swiftはオプショナルが便利! と、swiftがリリースされてから言われてますがswift初心者からすると厄介極まりないです。 ?と!の使い分けが分からずとりあえず"?"をつける、ソースコードを書いていたら急にXcodeに怒られ、エラーに導かれるままに"!"をつける... こんな経験がある方がいるのではないでしょうか。 この記事はそんなオプショナルがフワフワした状態を脱却することを目的としています。 (そのため、あまり深い部分は扱いません...) 細かく項目を区切っているため多く見えますが、サクサク読めるはずです。頑張って読んでいただければオプショナル型を理解できると約束します。 時間のない人はまとめだけ見ていただければと思います。 ◼︎ 読了時間 オプショナル型と非オプショナル型 (4分) オプショナル型と非オプショナル型の違いを示します オプショナル型 (6分) オプショナル型"?"
[Swift]APIで取得したJSONをswiftyJSONでパースして、天気情報をUITableViewで表示。お天気アプリを作ってみる。XcodeiOS初心者Swift まえがき的な(2015年の年始あたりに書いた記事です) Swiftの勉強がてら、色々調べながら簡単なアプリを作ってみました。 どうせなら作るだけじゃなくて、これから同じようなことする人の役に立つような記事にしようと思って書いてみました。 Swiftでごくごく簡単なアプリを作ったことある人向けを想定していて、ざっくり説明になっています。 不明点あった場合、コメントいただけれは補足追加します(^O^) swift2対応しました(2015年12月5日) swift2向けに更新したのと、当時のスキルでは仕方なかった微妙な実装方法も改修しています。 Xcodeは7.1でiOS9.1向けに作ってます。あと、pullして更新する項目
追記(2016/10/23) SE-0117: Allow distinguishing between public access and public overridabilityでpublicの意味が少し変わって、openも登場した関係で、本記事中のコードはSwift 3では少し変更必要そうです。 finalがデフォルトになったので指定不要になった オーバーライド可能にするにはopenを明示が必要になった(これまではデフォルトopen状態だった) デフォルトでDynamic Dispatchが発生しにくくなった感じです。 表面上の書き方は少し変わりましたが、本質は変わりません。 少し違う観点ですが、新しい公式記事もあがっています: Swift.org - Whole-Module Optimization in Swift 3 Swiftパフォーマンス周りの話題だと、Swift Op
Swift & Parseを使ったユーザー登録、ログイン、ログアウト(Swift, Xcode6 beta5,Parse)XcodeParsemBaasSwift A. 概要 MBaaSのParse.comを利用して、Swiftでユーザー登録とログイン・ログアウト処理を作ってみる B. 環境 Xcode6 beta5 Swift Parse.com C. Github SwiftAndParseApp 今回の記事に関するコミットは以下の2つ Create Login and Logout function Add a status about current user 1.ユーザー登録のためのポップアップを作る まずFirstViewが読み込めれる際に、ログイン済みのユーザーかどうかを判定 ログインしていなければ、ユーザー登録用のAlertを表示する override func viewD
下にスワイプししたらTableViewがリロードされてParseからデータ更新するのをSwiftで書いた(Swift, Xcode6 beta5, Parse, UITableView)XcodeSwift A. 概要 iOSにデフォルトでついている「下に引っ張るとリロード」をSwiftで書いてみました リロードされる内容はTableView全体 おまけでNavigation Bar Buttonにも更新ボタンをつけてみた (上のgifでは、Parseの方で新たにデータを登録してみて、その後更新をして、登録したデータが反映されているかをチェックしている動画です。) B. 環境 Swift Xcode6 beta5 Parse.com C. Github この記事の内容を使っているプロジェクト -> SwiftAndParseApp この記事に関するコミット -> Add refreshin
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く