Skip to content

Instantly share code, notes, and snippets.

@radex
Last active August 29, 2015 14:22
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save radex/9830071503d9cd49b8b8 to your computer and use it in GitHub Desktop.
Save radex/9830071503d9cd49b8b8 to your computer and use it in GitHub Desktop.
WWDC (iOS 9, OS X 10.11, Swift 2.0, Xcode 7) hopes&wishes

iOS 9:

  1. Stability, stability, stability. Things should just work. Especially networking/cloud related stuff: AirDrop, Handoff, syncing, etc…
  2. Notification center that's actually useful. Instead of grouping them by apps, and failing to intelligently show the notifications I'm interested in, show the chronological stream/feed of all notifications. Don't remove anything from that feed, only gray out notifications you've tapped on/seen. So, just like Facebook notifications. Much better model.
  3. Presence awareness for more intelligent notifications. Don't give me the cacophony of notifications of all 4 devices. Devices within each other's BTLE range should have awareness of each other and know that if I'm actively using my Mac, I want notifications to only show up there.
  4. Better app folders. The 3x3 grid is bullshit design, and even worse on the iPad. Make the folder zoom in and expand into a scrolling list of apps, not a paged interface. Kinda like on the Mac
  5. Allow people to choose default apps — for email, calendar and web browser. Use the extensions system to show the email/calendar modals popping up in other apps.
  6. Give developers a way to embed a web view that's sort of a Safari view — that remembers your keychain and such. With XPC, extensions, etc., there should be a way to do it in a safe way.
  7. Lock screen complications. Not sure if Apple wants to make Apple Watch less compelling by adding its features to iOS, but I really want to have the temperature and my activity circles on the lock screen. (There's the Today view, but I use it extremely rarely. I want to like it, it sounds useful, but for some reason it's annoying to use.)
  8. Clean up Settings. Do you know where you can find crash reports in iOS settings? In the Privacy section, obviously. Settings are such a mess. They should: a) be cleaned up into more logical sections, and b) have a search field at the top
  9. Better keyboard switching. 3rd party keyboard are frustrating, because you can't easily switch to a different keyboard. Also the long press switcher itself is kinda annoying, too. Not sure how to make it better, perhaps force touch would help here.
  10. Remove useless apps: Contacts, FaceTime (both duplicate functionality of Phone), Reminders (this is tough because Siri's "remind me" is useful, but the app itself is crap as a task list), Stocks (who gives a fuck), iTunes Store (should be integrated with Music, Videos IMHO), Game Center (LOL), Podcasts (make it downloadable on App Store, not built in)
  11. and remove everyone's favorite: Newsstand. I've had the displeasure of creating an app for Newsstand. The app itself is fine, but it's trapped in this magic app (not even a special folder, pre-iOS 7) that no one knows or cares about, and there's no way to opt out of it. Solution: just get rid of it. Make Newsstand apps normal apps, living alongside other apps. Keep NewsstandKit as a deprecated, legacy framework, and allow people to migrate to iOS 7+ APIs for background downloads.
  12. I use the Control Center shortcut to the Clock app almost every day, almost exlusively to set an alarm clock. but the shortcut is specifically to the Timer tab. Which is annoying to me. Would probably be better to remember the last tab
  13. Fix App Store's search and discoverability problems. Seriously, make it not suck.

Snow Yosemite:

  1. Many of the iOS 9 wishes are also applicable here. In particular, Yosemite suffers from serious bugs, stability and performance problems. Just fix your shit and I'll be happy.
  2. Native Safari extensions. Use the iOS8/Yosemite extension system for Safari extensions (which are now JavaScript only). This would allow things like AdBlock or Ghostery to not slow down page loading.
  3. Split and rewrite iTunes. (Not gonna happen just yet, but one day...) Make it a truly native, brand new, clean, intuitive app, or rather a set of apps: Music, Videos… maybe something else too. Like on iOS, those apps would have their iTunes (store) component, but mostly would be designed for that specific task. iOS device management should be integrated into OS X itself. As for Windows, just keep maintaining the current iTunes app, without any new features.

Watch SDK:

Just give me the same UI capabilities as WatchKit, but with views constructed on the device, a way to exchange data with the iPhone, and a small cache, and I'll be happy.

Swift 2.0:

  1. Stability, bug fixes, compilation and runtime performance…
  2. Removing annoying limitations, such as stored class variables, generic enum cases, and more from SwiftInFlux
  3. Easier asynchronous operations with async/await
  4. Partial application of uncurried functions, e.g. foo(_, bar) would apply the second parameter and effectively turn (A, B) -> T into A -> T
  5. Haskell-like deriving to automatically add implementations of Equatable, Printable, etc.
  6. Better modules/namespacing: ability to import modules without injecting their symbols into my namespace (import Alamofire as AF)
  7. Enhancements to the type system that would allow more things to be defined as methods, not free functions
  8. Flow-sensitive optional unwrapping
  9. Better error handling features (built-in Result, perhaps some way to catch exceptions, failed force unwraps, and other errors)
  10. Ability to force things to be dynamic for testing purposes: easy mocking, stubbing, testing private methods. (The last part is tricky due to Swift's semantics of "private")
  11. Better reflection features
  12. Ability to attribute Objective-C arrays/dictionaries with types, so that they're imported as handy [Foo], not [AnyObject]
  13. if, switch, etc. as expressions

Xcode 7 & dev tools:

  1. Swift 2.0 support (obviously) and improved tooling around it: refactoring tools, more reliable autocompletion, etc.
  2. Speaking of autocompletion: it doesn't play very well with functions that have default parameters (that you usually leave out) or trailing blocks.
  3. Better, smarter, more customizable snippets. Basically, go learn from TextMate how it's done.
  4. … and if you're feeling very generous, custom text editing commands would be nice too. (You could even use Swift for that!)
  5. Faster switching between tabs (IB tabs are slow to load and are blocking)
  6. Provisioning profiles that don't suck. They've always been slightly annoying, but iOS 8 and introduction of extensions compounded the problem. Here's how they should be done:
  • combine extension App IDs with the parent App IDs
  • similarly, provisioning profiles should be packaged into a single app profile: main app, sub-profiles for extensions, and configurations (Dev, AdHoc, App Store) for each of them.
  • make Xcode track profiles by their type (com.foo.bar's profile), not the immutable hash of a particular revision
  • now you can change/fix/add devices to the profile in one step, and Xcode can easily update it without the "Fix it" bullshit
  1. Make TestFlight not suck
  2. Make iTunes Connect not suck
  3. Make Bug Reporter not suck
@tomkowz
Copy link

tomkowz commented Jun 6, 2015

From me:

  1. Ability to use refactor tools in Xcode.
  2. Faster debugger. Now debugging Swift is a nightmare.

OMG! I never thought that sharing crash reports option is disabled on my iOS devices. It is hard to get there. Apple should simplify this somehow. I always thought that crash reports are somehow automatically send to developers without any options to be set first.

@radex
Copy link
Author

radex commented Jun 7, 2015

@tomkowz good point, I added it to the list as "improved tooling"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment