Takahiro Octopress Blog

-1から始める情弱プログラミング

Server Side Swift: Perfect を使ってみよう!

Server Side SwiftライブラリのPerfect

本日は以前書いたサーバサイドSwiftの続きを書きます!
と言いたかったところなのですが、Swift ExpressはSwift3.0やXcode8に対応しておらず、何もできなかったため、方向転換して最もSTAR数の多いPerfectlySoft/Perfectを使うことにしました。

よくよく見るとMySQLだけでなくMongoDB接続用にもモジュールが用意されており、なかなか良さそうではないですか!!
とは言いつつも、そんなにすぐにMaster Of Perfectにはなれないので少しずつ見ていくことにします。

Node.jsでrouterモジュールでルーティング!

Expressなしで簡単にルーティングしよう!

さて、久しぶりにNode.jsについて書きます。
筆者が本格的にNode.jsを利用していたのは3〜4年前だったため、Expressをよく利用していました。
その後、Expressを利用するほどのリッチな機能を必要としない、簡易的なデモ用のサーバサイドの仕組みを作るのにバリバリ自作ルーティングをしていました。
しかし、ここにきてExpressを利用するでもなく、かと言って自作でルーティング処理を書くのも若干面倒だと感じるとき果たしてどうすれば良いのかふと気になりました。
「きっと今の世の中なら何らかのモジュールが出ているはず!」と思った筆者は早速探してみることに…

そこで見つけたのがrouterです。
このモジュールを利用すれば、次のように簡単にルーティングを実装することができます。

NoSQLの特性を調べよう!

NoSQLとは

本日は珍しくiOS以外について書きます。
今やそんなに目新しい技術ではなくなってきたNoSQLですが、改めてどんなものか復習してみようと思います。
筆者が馴染みのあるNoSQLはMongoDBとRedisくらいなのでまだまだ知らないことも多く、一度まとめてみます。

NoSQLとは「Not only SQL」の略でMySQLやOracleなどの所謂RDBMSではないデータベースを指します。
その名の通りSQLは使いません(SQL相当のものはあったりします)

iOSアプリ内課金: 自動更新購読

アプリ内課金とは

アプリ内課金とはiTunes Storeを通してアプリ内の様々なものを購入する機能です。
例えば、

  1. 電子書籍アプリの購読
  2. コミュニケーションアプリのスタンプ
  3. ゲームアプリの協力なアイテム

などが該当します。
2と3に関しては買い切りプランとして、1は一定の購読期間を持ったプランとしてAppleから提供されています。
本記事では一定の購読期間を持ったプラン 自動更新購読(Auto-Renewing subscription) について書きます。

Xcode8を始めてみよう!

Xcode8が登場!

先日、Xcode8がiOS10と共に一般公開されました。本ブログの初期の頃にXcodeを始めてみよう!という記事を書きましたが、この頃がXcode4.6.3であったことを考えると何だか感慨深いですね。
なんて感傷に浸りたい気持ちとは裏腹にXcode8ではこれまでと大きく変わっている部分があるとのことで、少しではありますが見ていこうと思います。

Apple Developer Program(チーム活用編)

はじめに

本日はいつもと少し違う視点でブログを書きたいと思います。
今回取り上げるのは『チームでのApple Developer Programの活用方法』です。
iPhoneが世に出てから数年の月日が経っているものの、未だにApple Developer Programの使い方が成立していないところも多いです。
そこで、筆者が考える手法について備忘録の意を含めて書きたいと思います。

ReSwiftを勉強してみよう!(1)

はじめに

本日は最近JavaScript界では浸透してきているReduxについてSwiftを通して勉強していきたいと思います。
Reduxに関する日本語の記事はそれなりにあるもののSwift版ライブラリであるReSwiftに関する日本語の記事は少ないため、筆者が少しでも記事を増やせたら良いなという思いがあります。
と言いつつも、いきなり有効性の高い有良記事を書くことはハードルが高いため、簡単な勉強から始めて行く次第です。

RxSwiftを勉強してみよう!(3)

RxSwiftのメソッドを見てみよう

前回に引き続きRxSwiftを勉強したいと思います。
今回はGitHub: Reactive/RxSwift API一覧からメインのメソッドを見ていきたいと思います。

asObservable

これはReactiveXで定義されているFromオペレータと同義です。
様々なオブジェクトをObservable型のデータに変換するためのオペレータです。

利用例は下記です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let disposeBag = DisposeBag()   // 自動unsubscribeのために必要

let array: [Int] = [1, 2, 3, 4, 5]
let variable = Variable(array)
variable.asObservable.subscribe { (event) in
  print("Event is \(event)")
}.addDisposableTo(disposeBag)

variable.value = [6, 7, 8]

// 結果は下記です。
Event is Next([1, 2, 3, 4, 5])
Event is Next([6, 7, 8])
Event is Completed

RxSwiftを勉強してみよう!(2)

RxSwiftの公式Exampleを覗いてみる(2)

前回に引き続きRxSwiftの公式Exampleを見ていきたいと思います。
公式ソースはGitHub: ReactiveX/RxSwiftからダウンロードできます。

GeolocationExample

位置情報を用いたときのRxの有効性が表現されているのでしょうか?
早速見ていきましょう。

RxSwiftを勉強してみよう!(1)

RxSwiftとは

Reactive Extensions(以下、Rx)のSwift版です。
と一言で言っても、「Rxとはなんぞや??」となってしまうかと思います。
(多分に漏れず、筆者もそうです…)
そこで、いろいろと調べてみると、

  • 「非同期/イベント/時間に関する処理をLINQの形式で簡潔かつ宣言的に記述すること」ができるのが特徴
  • 観測可能 (observable) なシーケンスと LINQ スタイルのクエリ演算子を使って、非同期なイベントベースのプログラムを合成するライブラリ

なんて話が出てきます。
確かに非同期処理はソースコードが複雑になりやすいので、何となくRxは良さそうな気がしてきました。
今回はまず触って慣れてみようということで見ていきましょう。