みなさん、Swiftは使っていますか?

Objective-Cのお付き合いが長いので、Swift自体、腰が重いのですが…
これから始める人や、AndroidのエンジニアがiOSの開発も…と言うときに移行しやすいでしょうか。

今回は、Swiftを使ってRoltoSDKを組み込んで印刷してみたいと思います。

1.RoltoSDKをダウンロードします。

2.Swiftのプロジェクトを作ります。
project1

project2

3.Rolto SDK内のライブラリーとヘッダーをプロジェクトに追加します。
・プロジェクトのフォルダー内に"Rolto SDK"の中に入っている"Lib"をコピーします。
・コピーした"Lib"をXcodeのプロジェクトに追加(ドラッグ)します。 
lib


4.ブリッジヘッダーを追加してRoltoPrint.hを参照出来るようにします。
 RoltoPrint.hに#import <UIKit/Uikit.h>が入っていないので、ブリッジヘッダーに書きます。
bridge


 プロジェクト設定のObjective-C Bridging Headerにパスを書きます。
bridge2

 

5.下記のソースコードをViewController.swiftのoverride func viewDidLoad()の中に追加します。
 とりあえず、今回は起動直後にロルトを検索して決め打ちのイメージを印刷するサンプルです。
 パラメーターのエラーチェックや、印刷後のエラー処理等は入れていません。あしからず。

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // ロルト検索
        let dicover = RoltoPrintDiscover()
        dicover.searchPrintersWithCallback({print in

            let image = UIImage(named:"EarlyTimes.jpg")
            let params: Dictionary = [RoltoPrintParameterBlockSize: 0.8,
                RoltoPrintParameterBinarizationOffset: 0.05,
                RoltoPrintParameterErrorDiffusion: false]
            
            // 印刷実行
            print.performPrintImage(image, params: params, completion: { result in
            })
            
        }, comletion:{() in
        }, duration:2)

    } 

souce3


6.適当な画像をプロジェクトに追加します。
 コードでは、
       let image = UIImage(named:"EarlyTimes.jpg")
 としましたので、”EarlyTimes.jpg”をプロジェクトに追加します。
画像挿入

7.C++でコンパイルされるように、C++用のソースを追加します。
 拡張子は.mmで。中身は空で良いです。
c++



8.コンパイラーを"libc++"から"libstdc++"に変更します。
c++


9.ビルドして実行した結果です。
IMG_5812

SwiftからObjective-Cのライブラリーをただ呼び出すだけなので、Swiftのお作法通りに書き直せば動作します。

これからはSwiftのエンジニアが増えていくのでしょうか…


Rolto SDKを使用したアプリ「こよみ」好評発売中
暦丸
こよみ
Download_on_the_App_Store_Badge_US-UK_135x40


AirPrint非対応のプリンターにも印刷できる、「Prime Printはこちらから
iTunesArtwork1024
  Prime Print
Download_on_the_App_Store_Badge_US-UK_135x40