bobdarobber

joined 11 months ago
[–] [email protected] 1 points 10 months ago
  • Bonk: Social media for the action button (I use with my gf)
  • Ice Cubes: Open source app for mastodon
  • FocusPomo: Pomodoro app
  • FoodNoms: iOS native MFP alternative
  • WaterLlama: Water tracker
  • Transit: Public transportation (idk if this one is still “lesser known”
  • Everlog: Journal/Day One alternative
  • stats.fm: Spotify statistics
  • Mela: Recipe Manager
  • Wipr: Best adblocker for safari IMO
  • Opener: Open safari pages in the correct app
  • Solves: best calculator replacement imo. Tried Calzy and Calcbot also.
[–] [email protected] 1 points 10 months ago

Why is this so accurate

[–] [email protected] 1 points 10 months ago

Hi I doubt anyone is going to see this but also as a developer this is quite exciting. Some MacOS apps have an app store compliant version, and a more supercharged version that, for instance, accesses private APIs. Now this will also be an option on IOS. For instance, making a music app and want to know what the app user is currently listening to? Well you can do

let bundle = CFBundleCreate(kCFAllocatorDefault, NSURL(fileURLWithPath: "/System/Library/PrivateFrameworks/MediaRemote.framework"))
guard let MRMediaRemoteGetNowPlayingInfoPointer = CFBundleGetFunctionPointerForName(bundle, "MRMediaRemoteGetNowPlayingInfo" as CFString) else { return }
typealias MRMediaRemoteGetNowPlayingInfoFunction = @convention(c) (DispatchQueue, @escaping ([String: Any]) -> Void) -> Void
let MRMediaRemoteGetNowPlayingInfo = unsafeBitCast(MRMediaRemoteGetNowPlayingInfoPointer, to: MRMediaRemoteGetNowPlayingInfoFunction.self)
MRMediaRemoteGetNowPlayingInfo(DispatchQueue.main, { (information) in
    let bundleInfo = Dynamic._MRNowPlayingClientProtobuf.initWithData(information["kMRMediaRemoteNowPlayingInfoClientPropertiesData"])
    print("song: \(information["kMRMediaRemoteNowPlayingInfoTitle"] as! String), author: \(information["kMRMediaRemoteNowPlayingInfoArtist"] as! String), app: \(bundleInfo.displayName.asString!)")
})

but the second this code lands in your app it sure as hell won't be getting accepted to the app store. This is just one example, there's a world of opportunity here. It's not just for installing emulators & modded apps. It's a tool that will enable developers to do more with their apps, as they can freely do all sorts of things apple would not tolerate on the app store