MajorTom 0.1.1

MajorTom 0.1.1

测试已测试
Lang语言 SwiftSwift
许可 MIT
发布最新版本2017年6月
SwiftSwift 版本3.0
SPM支持 SPM

Lewis Smith 维护。



MajorTom 0.1.1

MajorTom

用于 iOS 的远程配置

许多开发者没有意识到他们可以远程控制应用程序的行为(前提是应用程序没有下载任何新代码)。

MajorTom 提供了一种非常简单的方式来远程配置您的应用程序,使您能够添加诸如 功能开关、临时 A/B 测试 或简单的 “每日消息”

它受到 GroundControl 的启发,并在 NSUserDefaults 上提供了一个类别。

客户端代码

UserDefaults().registerDefaultsWithURL(url: URL(string:"https://theprogressapp.com/wtw/defaults.plist")!)```

…或者如果您需要成功/失败的回调,并且不希望监听 NSUserDefaultsDidChangeNotification

UserDefaults().registerDefaultsWithURL(url: URL(string:"https://theprogressapp.com/wtw/defaults.plist")!, success: { (response, dictionary) in
    print(response.debugDescription)
    print(dictionary.debugDescription)
}) { (response) in
    print(response.debugDescription)
}

服务器代码

MajorTom 会异步下载并读取一个远程的 plist 文件。这可以是一个静态文件,也可以是动态生成的,如下面的示例所示

Ruby

require 'sinatra'
require 'plist'

get '/defaults.plist' do
  content_type 'application/x-plist'

  {
    'Greeting' => "Hello, World",
    'Price' => 4.20,
    'FeatureXIsLaunched' => true
  }.to_plist
end

Python

from django.http import HttpResponse
import plistlib

def property_list(request):
plist = {
    'Greeting': "Hello, World",
    'Price': 4.20,
    'FeatureXIsLaunched': True,
    'Status': 1
}

return HttpResponse(plistlib.writePlistToString(plist))

Node.js

var plist = require('plist'),
express = require('express')

var host = "127.0.0.1"
var port = 8080

var app = express()

app.get("/", function(request, response) {
response.send(plist.build(
{
    'Greeting': "Hello, World",
    'Price': 4.20,
    'FeatureXIsLaunched': true,
    'Status': 1
}
).toString())
})

app.listen(port, host)

静态文件

或者,简单地创建一个 plist 文件在 Xcode 中并将其上传到您的 web 服务器 :)

联系

Lewis Smith

许可

MajorTom 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。

应用

世界时钟小部件