気象庁発表の最新天気図のリンクをまとめたアプリをSwiftUIで作成しました。
iosアプリでは専門天気図が見れるアプリがありませんので、リンクするだけの単純なアプリですが
一部界隈に需要がありそうです。
気象予報士、気象会社、航空機運航者、船舶運航者などが主な天気図の利用層になります。
#構成
TabView > NavigationView > List > Safari
天気図の種類をタブで切り替えして、NavigationView
内に天気図リンクの入ったList
を並べます。
#webデータの構造体を作成
//webデータの構造体を定義
struct webData: Identifiable{
var id = UUID()
var name: String
var url: String
var favicon: String
}
#webデータをインスタンス化
let webList = [
webData(name:"ASAS",url:"https://www.data.jma.go.jp/fcd/yoho/data/wxchart/quick/ASAS_COLOR.pdf",favicon:"cat2")
]
これでリストの一行が完成です。
その他の実況天気図も webList
内に作成します。
同じように高層天気図タブ用のものもインスタンス化しておきます。
#TabViewの実装
TabView(selection: $selection) {
//任意の表示の処理
.tabItem {
Image(systemName: "cloud.sun") //タブの画像
Text("実況") //タブの文字
}
.tag(1) //一つののタブをであることを示す
これでタブが一つだけ実装できました。
この「任意の表示の処理」にNavigationView
とList
を追加します。
タブの画像はSF Symbolsを使用しました。
#NavigationViewとListの実装
TabView(selection: $selection) {
NavigationView{
List(webList){item in
//ファビコンを作成
Image(item.favicon).resizable().frame(width:40,height:40)
//リンクを作成
Link(item .name,destination:URL(string: item.url)!)
}
//タイトルの作成と文字設定
.navigationBarTitle("気象庁 実況天気図")
.navigationBarTitleDisplayMode(.inline)
}
//ipadに適応させる
.navigationViewStyle(StackNavigationViewStyle())
.tabItem {
Image(systemName: "cloud.sun")
Text("実況")
}
.tag(1)
これで一つのタブが完成です。
高層天気図や天気情報などのタブも作成すると以下のようになります。
無事にSafariが開いて天気図のリンクを開いてくれました。
横の方が見やすいかもです。
#ipad対応
天気図を確認するかたはipadを利用する人も多いと思います。
ipadでも表示が崩れない様にするために下記の記述をしています。
.navigationViewStyle(StackNavigationViewStyle())
を記述↓
.navigationViewStyle(StackNavigationViewStyle())
なし↓
Navigationが左によってしまってます。
すぐ右に何か表示させる状態をデフォルトで考えているのでしょう。
ここに天気図を表示させるのもありですが、別途処理が必要になります。
#参考文献
詳細! SwiftUI iPhoneアプリ開発入門ノート[2020] iOS 14+Xcode 12対応
#まとめ
初めてのアプリ作成でした。
気象庁の公式サイトより圧倒的に利用しやすいと思います。
気象庁公式アプリにしてください笑