SwiftUI の UIView を画像にして保存するサンプル

SwiftUI で UIView の内容を画像(UIImage)にして、アルバムに保存するサンプルを作った。

SwiftUI は現在の View を直接 UIView として扱うことは難しいので UIApplication 経由で UIView を取得する感じになる。

extension UIView {
    
    func image() -> UIImage {
        let renderer = UIGraphicsImageRenderer(bounds: self.bounds)
        
        return renderer.image { rendererContext in
            layer.render(in: rendererContext.cgContext)
        }
    }
    
}

extension UIApplication {
    
    static func image() -> UIImage? {
        guard let rootViewController = shared.windows[0].rootViewController else {
            return nil
        }
        
        guard let view = rootViewController.view else {
            return nil
        }
        
        return view.image()
    }
    
}

SwiftUI(iOS 13.3) / ScrollView 上に配置した List の項目選択が残る問題

SwiftUI iOS 13.3 で

  • ScrollView 上に List を配置する
  • その List から NavigationLink で遷移する

を試すと、項目の選択が残ったままになる。

再現させる最小限のサンプルを GitHub においた↓

iOS 13.2 の時点で発生していたんだけど、 iOS 13.3 になっても変わらず。。。

困ったもんだね。




似たような問題が StackOverflow でも上がっていた↓

非税理士が申告書などを作成するソフトを開発、販売することは禁止されているか?

税理士の業務は、独占業務なので、非税理士が事務をすると違法になる場合がある。

では、ソフトウェア・アプリで税理士に関連したものを開発するとどうなるのか?




https://www.nta.go.jp/taxes/zeirishi/zeirishiseido/ihan/qa02.htm

問2-3 他人の求めに応じ、業として、申告書等の作成ソフトを開発又は販売することは、非税理士により行うことが禁止されている税理士業務に該当しますか。 答 非税理士が申告書等の作成ソフトを開発又は販売することは、非税理士により行うことが禁止されている税理士業務のいずれにも該当しません(問2-1参照)。 【参考法令等】

法第2条、第52条

大丈夫そうである。

SwiftUI で iOS アプリを個人開発&ストアに公開した

2019年に Apple から SwiftUI が発表された。

今回、その SwiftUI を使ってアプリを開発&ストアに公開までしたので、実際 SwiftUI 使ってみての感想などをメモする。

公開した iOS アプリ

公開したアプリは以下である。

複雑で難易度が高いアプリだと SwiftUI も慣れていないため、挫折しそう。。
なので、ある程度やりやすそうな題材を選んだ。

最初、審査に提出したら内容がコンパクトすぎたのか、Minimum Functionality でリジェクトされた。。

その後、すこし機能追加して、無事審査は通った。

SwiftUI の初期印象

最初に触ったみた SwiftUI の印象

  • あくまでも UI を記述するたの機構
    • 今までの Swift コードの View, ViewController にあたる部分が SwiftUI で書き換えれるイメージ
  • SwiftUI は Swift 固有の言語(DSL:domain-specific language)であるので Swift とは別に学習が必要であり、すこしとっつきにくい
  • UI コンポーネントの名前が UIKit と微妙に変わっていてややこしい
    • UITableView -> List
    • UISwitch -> Toggle
  • データフローまわり、よくわからない・・・
  • SwiftUI を使うと iOS 13 以降が対象になる -> なんか未来感があってイイ

よく理解できず、これでアプリが作れるんだろうか? という不安を感じた。

SwiftUI チュートリアルで学ぶ

まず公式のチュートリアルは鉄板なので、動かしてみてみる。

このチュートリアルをみていくと、アプリをつくるために必要な

  • NavigationView (画面遷移)
  • List(UIKit でいえば UITableView)
  • Environment (アプリ全体でつかうデータ)
  • @State (UI で変更した値と連動)

などの要素を学べる。

このチュートリアルで基礎を学んだら、いろいろ自分で、こういうのは SwiftUI でどう実現するのかな? という題材をつくり、トライして理解度を高めてゆくとよい。

SwiftUI サンプルを作って理解度を高める

いろいろサンプルを作って、動作を確かめていく。
私は以下のサンプルを作って試した。

参考になった情報

マネーフォワードさんが SwiftUI で実際にアプリをリリースした時の記事。

SwiftUIの大変なところ 現状のSwiftUIには様々なバグや不足しているAPIなどまだまだ残っているなという印象です。

先行していろいろ試している方の記事を読んで「諦めが肝心」というマインドを得た。


こちらのリポジトリには、まとまった SwiftUI コードがあって、実装の上で大変参考になりました。
Appleチュートリアル以外で、ある程度の規模がありながら、動作する SwiftUI のコードは貴重である)

感想

アプリを開発/公開したり、いろいろ調べた結果
2020/1/7 現在、SwiftUI でアプリ開発することはまだ辛いな、という印象。

以下、理由

一方で

今は SwiftUI そのものが改善されていくのを日々体験できる、という特別感があり、今後行き先はどうなるのか、楽しみではあります。 (Swift は OSS ですが、 SwiftUI は Closed な Apple 感があるような気がしますね)

複数の SVN ワーキングコピーの内容を最新に保つ

SVNGUI クライアント(たとえば TortoiseSVN)を使うと、簡単に SVN 操作をできる。
しかし、複数の SVN ワーキングコピーに対して一括で操作したい場合、ひとつひとつ手作業をすると手間になる。


具体的には複数の SVN ワーキングコピーに対して、以下を実行したい

  • ワーキングコピーがある場合は svn update でワーキングコピーを更新する
  • まだワーキングコピーがない場合は svn checkoutSVN リポジトリをチェックアウトする
  • update/checkout 時にエラーが発生したら svn cleanup をする


この問題に対応するために Python スクリプトを作成した。
https://github.com/daisuke-t-jp/svn-working-copy-updater

詳しい使い方は上記 GitHub の README.md を参照すること。




ところで

このスクリプトをテストするにあたり、現在まだ commit が継続されている現役の複数の SVN リポジトリを探すことに難儀した。
2019年現在、 やはり Git が主流(というかほぼ全て)になり、SVN でメンテナンスしているプロジェクトは少なくなった。

探した結果、Apache はまだ現役で SVN を使って複数のプロジェクトのバージョン管理をしているので、今回はそれをテストに使用した。

https://svn.apache.org/repos/asf/

subversionhttpd などがメンテナンスされていることが確認できる。


Apache 以外だと大きいところでは gccSVN 管理されている。(GitHub にある gcc リポジトリは mirror である)

https://gcc.gnu.org/viewcvs/gcc/

本『「NHKから国民を守る党」の研究』(えらいてんちょう)の感想

「NHKから国民を守る党」の研究

「NHKから国民を守る党」の研究

YouTube という新しいメディアを活用して、地方議会、そして国会(参議院)に議席を獲得した政党「NHKから国民を守る党」を研究した本。

SNS というメディアが個人に普及して、ついに政治にまで影響が出る社会になったのか、と感じた。

YouTubeTwitter で出る情報というのは日々新しいし、コミュニケーションのツールでもあるため、なかなかまとまった情報がなく、いま現在ある熱狂に目がいってしまいがちだ。

その点この本では、ネット上の軌跡、書籍、関係者への取材を通じて、客観的に情報がまとまっているので、どのように新しい国政政党ができたのかを把握しやすい。


個人的にはこの本を読んで、妙に面白いのは、、

かつて作家の立花”隆”さんが、「日本共産党の研究」という政党の研究本を出したが、この本は立花”孝志”さんが党首である「NHKから国民を守る党の研究」という本なので、なんだかそのレトリック感がよい。