1) Открою секрет, звуковая волна не парсится из звукового файла, а хранится в виде отдельного поля (по крайней мере в telegram), которое присылает само приложение при загрузке файла, т.е. если не пришлет, то и звуковой волны не будет.
2) Если речь идет про звуковые сообщения (короткие, ОЧЕНЬ маленькие файлы), то мне кажется что легче их сразу скачивать и воспроизводить локальный файл.
1) Вынесите sdkInstance в общие переменные ViewController (под VK_APP_ID)
2) Уберите из buttonLoginVKPressed вызов метода initialize и вполне вероятно, что обращение метода authorize надо переделать на переменную, которую вы инициализируете ранее.
Если кратко, то вам нужно включить физику для песка и корабля, задать ее свойства (по-умолчанию по-моему она будет считать физику по-аналогии с играми аля марио, т.е. ваш кораблик всегда будет падать вниз, поэтому нужно отключить это) и установить в свойствах, что песок и корабль могут сталкиваться друг с другом.
Поищите в гугле "delegate", если кратко, то создаете протокол, в котором прописываете методы, сохранающие данные в классе-родителе, затем добавляете переменную в дочерний класс (поповер) и при его закрытии через эту переменную обращаетесь к классу-родителю.
Псевдокод:
В рамках кода приложения классы импортировать не надо, т.к. все они считаются внутри одного модуля, поэтому видят друг друга, но если вы добавите другое приложение в ваше, то тогда уже нужно делать import.
Очень сомневаюсь, что ресурсы смартфона в состоянии быстро распознать текст на a4 листе, скорее всего большинство подобных приложений работает по принципу: делаем фотографию, отправляем ее на сервис распознавания, получаем ответ.
Конечно есть приложения, делающие распознавание на лету, но они ориентированы на меньшие объемы: вывеска на улице, ценник продукта и т.п.