1
/
5

アメリカ政府が公開したソースコードにiOSアプリもあったのでビルドしてみた

いよいよ明日は米国大統領戦ですね。政治はあまり詳しくないので語れないのですが、同じくアメリカ政府絡みで、エンジニア的にはすごくワクワクするニュースがありました。


米政府のオープンソースソフトウェアを1カ所に--「Code.gov」が公開
米政府は、連邦政府機関がカスタマイズして開発したソフトウェアすべてを対象とするリポジトリ「 Code.gov 」を公開した。  Code.govは、オバマ政権が8月に発表した「Federal Source ...
http://japan.cnet.com/news/society/35091700/
米政府は、連邦政府機関がカスタマイズして開発したソフトウェアすべてを対象とするリポジトリ「Code.gov」を公開した。
13の政府機関(航空宇宙局:NASA、エネルギー省、財務省など)による50近くのオープンソースプロジェクトが公開されている。


おおっ、これは熱い!いつか触ってみよう。


・・・と思いかけましたが、これは今見ないと永遠に見ないパターンだ、とわかってるので、ちらっと見てみたところ、



なんと、Swiftコードもある!!!!


大興奮しつつGitHubリポジトリへ行ってみると、2016年11月7日現在でスター数 9 !世界中でニュースになっただろうに・・・やはり中身を見ないのはみんな一緒なんだなとw


本連載はサンフランシスコでのエンジニア生活をお届けするべく始まったものですが、アメリカ絡みの時事ネタということで中の方からOKが出たので、今回見つけた2つのiOSリポジトリをビルドして試してみようと思います。

USDepartmentofLabor/Child-Labor

まずは労働省の Child-Labor リポジトリ。


USDepartmentofLabor/Child-Labor
Contribute to Child-Labor development by creating an account on GitHub.
https://github.com/USDepartmentofLabor/Child-Labor


READMEには

iOS version of Child Labor app.

とあります。Child Laborというのはググると"幼年労働"の意味のようです。

これだけだとどんなアプリかわかりませんが、とりあえず git clone してXcode 8.1でビルドしようとしてみると・・・Swiftのバージョンの変換が必要でした。ここでいつものクセでSwift 3を選んでしまったのですが、修正が結構めんどくさかった。。(※その後Swift 2.3を選んでみたら、一切修正せずビルドできました)

で、面倒なところはコメントアウトで一時しのぎしたりしつつBuild&Runすると、こんな感じのアプリでした。



AppStoreに普通にありそうなアプリだ、と思って検索してみたら、普通にあったので、ストアに出てるアプリのコードがそのまま公開されているようです。(Google Analyticsとかも埋め込まれてます)


Swiftコードとしては少々微妙な部分が目につきました。

let countryName = country["Name"].element?.text

ってやっといて、その後無数の

countryName!

が出てくるとか、

あと、

if Array(countryName!.characters)[0] == "A" {
    aCountries.add(countryName!)
} else if Array(countryName!.characters)[0] == "B" {
    bCountries.add(countryName!)
} else if Array(countryName!.characters)[0] == "C" {
    cCountries.add(countryName!)
} else if Array(countryName!.characters)[0] == "D" {
    dCountries.add(countryName!)
} // 以下Zまで続く

とか。。(しかもSwift 3ではここでコンパイラがクラッシュ

USDepartmentofLabor/Swift-Federal-Data-SDK

もうひとつのSwiftコードは、Federal Data SDK(連邦データSDK)といういかつい名前のSDK。


USDepartmentofLabor/Swift-Federal-Data-SDK
Swift-Federal-Data-SDK - Federal Data SDK built in the Swift programming language. Follow the link for the documentation:
https://github.com/USDepartmentofLabor/Swift-Federal-Data-SDK


READMEには

Federal Data SDK built in the Swift programming language

とあり、タイトル以上のことはここからはわかりません。


こっちはSwift 3.0.1 でテスト済みとあります。

This SDK has been tested in Swift 3.0.1


こちらの方が期待できそうだぞ、と中身を見てみると、置いてあるソースコードは GovDataRequest.swift だけ。サンプルプロジェクトどころか、SDKをビルドするプロジェクトも、他のブランチもありません。


READMEの続きを読むと、

Documentation for this SDK can be found at http://usdepartmentoflabor.github.io/Swift-Federal-Data-SDK/.
Sample code for this SDK can be found at http://usdepartmentoflabor.github.io/Swift-Sample-App/.

とあり、ここで提供されてるのはAPIクライアントのクラスだけで、上のページの手順に従って自分で作ってねということのようです。

記念にプルリクエスト

せっかくなので記念にSwift 3.0サポートのプルリクを送ってみました。


Swift 3.0 Support by shu223 · Pull Request #72 · USDepartmentofLabor/Child-Labor
Contribute to Child-Labor development by creating an account on GitHub.
https://github.com/USDepartmentofLabor/Child-Labor/pull/72


絶対マージされないと思いますが、このリポジトリでは最初のプルリクなので、何かしらの担当者/関係者の方の目には触れるのかもしれないと思うとワクワクします。

所感

米国政府秘蔵のあれやこれやのすごい技術がオープンソースに!という感じではなかったですが、いちエンジニアがアメリカ政府にプルリクを送れてしまうというのはやはりワクワクする流れだなと思います。明日の大統領選、そしてこのプルリクの行方(無視されるのかCloseされるのかコメントもらえたりするのか)が楽しみです。

28 いいね!
28 いいね!