Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Learning by Inspecting and Analyzing Apps

Learning by Inspecting and Analyzing Apps

We discuss how to learn by inspecting and analyzing App Store applications with a simple set of instructions. We will look at how to use jailbreaking for education purposes -- on this specific case a way to inspect the view hierarchy of applications, allowing you to see how other developers solved a problem, or how some feature was implemented.

Joao Prado Maia is the founder of the Houston iPhone Developers Meetup, and the principal at Ipanema Labs LLC, a mobile development consulting company specializing on iOS and Android implementations.

João Prado Maia

February 17, 2015
Tweet

More Decks by João Prado Maia

Other Decks in Programming

Transcript

  1. Learning by Inspecting and Analyzing Apps Houston iPhone Developers Meetup

    February 17th 2015 João Prado Maia, Ipanema Labs LLC © Ipanema Labs LLC, 2015 1
  2. Me • Building apps since 2008 • Freelancing full time

    since 2011 • Principal at Ipanema Labs LLC • Full time freelance iOS developer out of The Woodlands © Ipanema Labs LLC, 2015 2
  3. Meetups • Founder/Organizer of Houston iPhone Developers Meetup • Organizer

    of Houston PHP Users Group since 2005 © Ipanema Labs LLC, 2015 3
  4. Knee Cap • Early 2009 • First app on store,

    simple SQLite structure © Ipanema Labs LLC, 2015 4
  5. HAR (client) • Early 2010 on iPhone, 2011 as Universal

    app • Single developer on this application • Really big and complex application, mirroring features available on HAR.com © Ipanema Labs LLC, 2015 5
  6. Houston Living (client) • Mid 2013 • Single developer on

    this application • Universal app from the start © Ipanema Labs LLC, 2015 6
  7. New HAR (client) • Launching in a couple of months

    • Single developer on this application • Complete redesign of the app (and website) © Ipanema Labs LLC, 2015 7
  8. Learning by Inspecting and Analyzing Apps (aka Jailbreaking is Useful

    Sometimes) • Usually a pain to support when dealing with bugs in jailbreaking mods © Ipanema Labs LLC, 2015 8
  9. Initial Setup (1/3) • Jailbreak your device • Protip: use

    a backup device • Use Cydia to install OpenSSH, vim and Cydia Substrate • Login as root and change the default password ("alpine") • Install Reveal on your Mac © Ipanema Labs LLC, 2015 9
  10. Initial Setup (2/3) • Copy the Reveal framework and dynamic

    library to the device cd /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries scp -r Reveal.framework \ [email protected]:/System/Library/Frameworks scp libReveal.dylib \ [email protected]:/Library/MobileSubstrate/DynamicLibraries © Ipanema Labs LLC, 2015 10
  11. Initial Setup (3/3) • Create a configuration file on device

    for Cydia Substrate: • This step will be repeated as many times as needed, to add new apps to inspect vim /Library/MobileSubstrate/DynamicLibraries/libReveal.plist { Filter = { Bundles = ( "<App Bundle ID 1>", "<App Bundle ID 2>" ); }; } killall SpringBoard © Ipanema Labs LLC, 2015 11
  12. Finding Apps • Built in applications: cd /Applications ls •

    Third party applications: cd /var/mobile/Containers/Bundle/Application find . -maxdepth 2 -type d -ls © Ipanema Labs LLC, 2015 12
  13. Demos • App Store • Flipboard • Twitter • Tweetbot

    • Any suggestions for apps to inspect? © Ipanema Labs LLC, 2015 13
  14. Apple App Ids (1/2) • iTunes Store: com.apple.MobileStore • App

    Store: com.apple.AppStore • Safari: com.apple.mobilesafari • Mail: com.apple.mobilemail • Music: com.apple.Music • Phone: com.apple.mobilephone © Ipanema Labs LLC, 2015 14
  15. Apple App Ids (2/2) • Weather: com.apple.weather • Stocks: com.apple.stocks

    • Compass: com.apple.compass © Ipanema Labs LLC, 2015 15
  16. Third Party Apps • Flipboard: com.flipboard.flipboard-ipad • Twitter: com.atebits.Tweetie2 •

    Tweetbot iPhone: com.tapbots.Tweetbot3 • Tweetbot iPad: com.tapbots.TweetbotPad • Instagram: com.burbn.instagram • Facebook: com.facebook.Facebook © Ipanema Labs LLC, 2015 16
  17. Jailbreak Mods • Simulate different GPS location within specific apps

    • GPSCheat, Fake Location, etc • Control your device remotely through VNC with Veency © Ipanema Labs LLC, 2015 17
  18. More information • Reveal app ($89.99) - http://revealapp.com/ • Alternative:

    Spark Inspector ($49.99) - http:// sparkinspector.com/ • Super nice "live mirror" feature, also has a notification monitor that can be useful in some cases © Ipanema Labs LLC, 2015 18
  19. Contact • João Prado Maia - [email protected] • Reach me

    at (936) 718-1376 • Website at http://ipanemalabs.com • Twitter: @joaopmaia © Ipanema Labs LLC, 2015 19