Type superClass = getClass().getGenericSuperclass();
Читаем доку getGenericSuperclass(): If the superclass is a parameterized type, the {@code Type}
object returned must accurately reflect the actual type
parameters used in the source code.
Программисты недавно создали такую штуку как Github. Там сейчас можно найти проекты любой сложности. Что мешает учиться с них? Можете начать с iosched 2014, u2020
Рекомендую подключить и использовать RollBar. Как только ваше приложение обвалилось на любом устройстве, где оно установлено, на сайте вы увидите лог ошибки. Для личного пользования вам бесплатной подписки вполне хватит.