
AppDelegateってなに!?!? – iOS Swfit
Google Mapsのcodelabsをやっていたら、codelabsには記載がないけどgithubの方に急に出てきました。
なにこれ。終わった。
アプリの代表
AppDelegateのDelegateは「代表」と言う意味らしいので、「アプリの代表」というクラス名になります。
ただし「AppDelegate」という名前に特別な力があるわけではないため、この名前でなくても問題ありません。
AppDelegateに力を与えているのは、その上についている「@main」や継承されている「UIResponder」や「UIApplicationDelegate」です。
そのためAppDelegateからaaaaにしても、名前のセンスはないですが、コードは動きます。
※@mainについては過去記事あり
なぜAppDelegate?
なぜAppDelegateという強そうな名前かというと、昔からのしきたり的なものです。
別にどんな名前でも問題ありませんが、アプリ起動時に最初に実行されるコードでありライフサイクル(アプリが起動されてから死ぬまでの生き様)を監視しているため、「アプリの代表」という名前が付けられたようです。
実際、変えても良い??
コード的に問題がなくても慣習には基本的には従った方が良いと個人的には思います。
個人開発のアプリでしたらあまり問題はありませんが、業務アプリ開発では問題が出てきます。
新しくプロジェクトに参画した場合、「AppDelegateがない!!なんで!?!?」となる可能性が高く、誤解や混乱を招く可能性があります。
もちろんAppDelegateから別の名前に変わっていることにすぐに気がつくとは思いますが、わざわざそのような混乱を招くコードを書く必要性がないと思います。
ただ、プロジェクトによっては変更した方が良いと判断する場合もあると思うので、臨機応変にお願いします。コメントでブチギレないでください。