こんにちは、初回起動判定についての回答をさせていただきます。
SwiftにはNSUserDefaultsというクラスが存在します
NSUserDefaultsというクラスはアプリケーションの設定値など、アプリを停止させてもずっと保持しておきたい情報を簡単に保持できるものです
つまりNSUserDefaultsのデータはアプリが削除されるまで削除されません
使い方としてはNSUserDefaultsを取得して、取得したNSUserDefaultsに対してデータを保存したり取り出したりすることでデータ保持を行います
このクラスを用いて初回起動時に適当な文字列をNSUserDefaultsに書き込んで保存しておき2回目以降はNSUserDefaultsの中にその文字列があるかどうかの判定をおこなえば初回起動だけ特別な処理が行えるので、その初回起動の中でダウンロードの処理を行えばいいわけです
こちらの記事が初回起動判定のサンプルもあり、参考になるので読んでみてはいかがでしょうか↓
【swift】アプリの初回起動時のみ処理を行う方法【CoffeeNote開発日記】