• 0 Posts
  • 3 Comments
Joined 11 months ago
cake
Cake day: October 21st, 2023

help-circle
    • 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.


  • 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