Smartphone Programming Theory