Если честно, не знаю как Double Shake определяется в iOS, поэтому тут не могу что-либо подсказать.
Но первое что приходит в голову если немного задуматься — это отслеживание изменения вектора, прочитанного с акселерометра. Момент, когда предыдущее и текущее значение этого изменения отличаются на какую-то величину калибровки, можно считать событием Double Shake.
Знакомство с Pygame Subset for Android