Зря отмечаете не полезными дельные идеи, вы что подразумеваете под логикой - всякие операторы И ИЛИ НЕ, так это решается путём написания команд. Если про то, как работает приложение - то тут нужно придумывать в голове и это обычно не зависит от языка программирования, это всего-лишь инструмент. Продумываете каждый шаг работы приложения, думаете, что будет если пользователь сделает то, сделает то, а затем реализуете в виде программы. Я долго этому учился, ходил на кружок информатики с 5 класса, вначале писал базовые программы, там определить например, если перевернуть строку будет ли она той же (А лапа упала на лапу азора) например и так далее. Затем в ВУЗе стал более полноценные приложения делать.