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

Injection, or Controlling your Tools

Orta
August 08, 2016

Injection, or Controlling your Tools

The largest OSS projects in the iOS ecosystem comes from people who have said “the tools we have are insufficient” and were unwilling to wait for Apple to fix them. There are still a lot of holes to be filled and as individuals we should be devoting time to helping ourselves and each other.

This talk is about the my struggles with accepting that sometimes it’s up to you to be the change you want in the world.

Orta

August 08, 2016
Tweet

More Decks by Orta

Other Decks in Programming

Transcript

  1. OR

  2. The original brief had no concept of Unconventional Instruments, which

    came in by user requests and eventually grew to be roughly half the project. “
  3. I had to read 4 books before I was close

    to being even slightly competent in writing software for Mac OS X. “ “
  4. Listen id nc = [NSNotificationCenter defaultCenter]; SEL injected = @selector(appHasBeenInjected:);

    NSString *key = @“INJECTION_BUNDLE_NOTIFICATION”; [nc addObserver:self selector:injected name:key object:nil];
  5. - (void)runDeveloperExtras { NSString *path = @“/artwork/glenn-brown”; id switchboard =

    [ARSwitchBoard sharedInstance]; id viewController = [switchboard loadPath:path]; [self pushViewController:viewController animated:YES]; } Recreate
  6. - Xcode Plugin - Keeps track of all changed files

    - Compiles the changed files via terminal to bundle - Bundle is passed to an Injection server in your app - Server receives bundle, and loads it - Server replaces methods in old classes with new ones - Server sweeps though all app memory for instances - Server notifies all objects they’ve been changed HOW
  7. CAVEATS - Won’t work for Swift purists - Works fine

    for pragmatic programmers - Requires un-signing Xcode 8
  8. YOU