見出し画像

TWSNMPのiOS連携アプリ開発のための学習:Playgroundとデータの保存

毎朝、猫に起こされてTWSNMPとiPhoneを連携させるアプリを開発しています。この開発のために勉強したことを書いておきます。

Playground

ドットインストールのSwiftのレッスン

では、Playgroudというものを使って練習しています。TWSNMP連携アプリの開発でも調べたコードを試すために、これを使うことにしました。でも、ドットインストールのレッスンのようにXcodeの起動メニューから選択して起動することができませんでした。今はXcode以外に独立したアプリがありました。

Xcodeからも起動できます。FileメニューのNewから

画像1

から起動できました。

iOSアプリのデータ保存方法

昨日と今日は、

に書いた私の知らないことの1つ、iOSアプリのデータ保存方法を調べました。連携するTWSNMPのリストぐらいならばUserDefaults

が使えそうということがわかりました。そこで、Playgroudを使ってテストプログラムを作ってみました。

画像2

慣れない言語だとちょっとしたエラーで迷宮に陥りそうになりましたが、いろいろ試行錯誤して

import UIKit

// TWSNMPの情報を保存する変数
var twsnmps = [[String:String]]()

// データを追加する
twsnmps.append(["url":"twsnmp1","user":"user1","password":"pass1"])
twsnmps.append(["url":"twsnmp2","user":"user2","password":"pass2"])
twsnmps.append(["url":"twsnmp3","user":"user3","password":"pass3"])
twsnmps.append(["url":"twsnmp4","user":"user4","password":"pass4"])
//確認
print(twsnmps[2]["url"]!)

// JSONの文字列に変換する
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(twsnmps)
let jsonSave = String(data: data, encoding: .utf8)!

// JSONの文字列を保存する
let uDef = UserDefaults.standard
uDef.set(jsonSave, forKey: "twsnmps")

// 保存したJSONの文字列を読み出す
let jsonLoad = uDef.string(forKey: "twsnmps")
//確認
print(jsonLoad!)

//TWSNMPの登録情報に変換する
let decoder = JSONDecoder()
let twsnmpsLoad = try decoder.decode([[String:String]].self, from: jsonLoad!.data(using: .utf8)!)
//確認
print(twsnmpsLoad)

のようなデータ構造と保存方法で解決できそうです。


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。