Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
Yep gotta wait for that to be approved.

One build from each version needs to to through the long (one-ish day) review. When I say "build" here, I mean build number, which is an integer you need to increment each time you want to upload a new archive to the App Store. And when I say "version" I mean marketing version, the one users see, like 1.1 or 2.0.

You can submit many builds, incrementing the build number each time, before finally choosing one to submit to the App Store for release as the marketing version. As soon as you release something under that marketing version, you need to bump the marketing version (major, minor, doesn’t matter; the App Store doesn’t care about semver) to upload new builds. And as soon as you make a new marketing version, you gotta send one build the long way through beta app review.

Adbot
ADBOT LOVES YOU

Boris Galerkin
Dec 17, 2011

I don't understand why I can't harass people online. Seriously, somebody please explain why I shouldn't be allowed to stalk others on social media!
If I were to start learning iOS/macOS development today, do I want Swift or Objective-C? I'm familiar with regular C, Fortran, and Python, if it matters at all. Also, is Xcode the go-to/gold standard for IDEs or would you guys recommend alternatives like AppCode? I already have a JetBrains license so I wouldn't be buying it for this specific purpose.

Stringent
Dec 22, 2004


image text goes here
Swift and Xcode imo.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
Seconded.

TheReverend
Jun 21, 2005

I'm the last remaining obj-c enthusiast and even I know the writing is on the wall.

Swift upgrades can kinda suck but yeah it's totes the future.

Doctor w-rw-rw-
Jun 24, 2008

TheReverend posted:

I'm the last remaining obj-c enthusiast and even I know the writing is on the wall.

Swift upgrades can kinda suck but yeah it's totes the future.

Same. Obj-C is the better language for now; Swift is the one with more energy and enthusiasm.

Good Sphere
Jun 16, 2018

Does anyone know of a live camera input Swift project that uses Metal on GitHub or as a tutorial? There's some examples on the Apple docs that show projects using Metal that are still able to use CIFilters with some added performance benefits, without the rest of the code that would make up the rest of the project. For what I've seen, it looks a lot more involved. My project really needs it.

Bob Morales
Aug 18, 2006


Just wear the fucking mask, Bob

I don't care how many people I probably infected with COVID-19 while refusing to wear a mask, my comfort is far more important than the health and safety of everyone around me!

I got my 'Poverty Hyperdock' proof of concept working...basically just wanted previews of what windows each app had open (Like Windows Aero Peek)



Need to add:
Showing more than 1 window if that's what the app has open
Click a window's preview to bring it to the front

dc3k
Feb 18, 2003

what.
hey that's neat. one of my favourite windows features

Doh004
Apr 22, 2007

Mmmmm Donuts...

Bob Morales posted:

I got my 'Poverty Hyperdock' proof of concept working...basically just wanted previews of what windows each app had open (Like Windows Aero Peek)



Need to add:
Showing more than 1 window if that's what the app has open
Click a window's preview to bring it to the front

Gimme dat.

dizzywhip
Dec 23, 2005

Curious if anyone has any insight into whether Apple allows this. My company's app has an autorenewable subscription with a free trial that's required as part of the signup process. To reduce friction, they want to remove the subscription step from the signup process and instead track the free trial time on our end. After the trial ends, the user is locked out of the app until they purchase a subscription.

So we basically want to roll our own free trial system while still using a regular autorenewable subscription. I feel like this is something that Apple will reject us for, but I can't find any concrete information about it, and the review guidelines don't seem to cover this case.

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

Doh004 posted:

Gimme dat.

Hyperdock is worth the money if you want something right now imo.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

dizzywhip posted:

Curious if anyone has any insight into whether Apple allows this. My company's app has an autorenewable subscription with a free trial that's required as part of the signup process. To reduce friction, they want to remove the subscription step from the signup process and instead track the free trial time on our end. After the trial ends, the user is locked out of the app until they purchase a subscription.

So we basically want to roll our own free trial system while still using a regular autorenewable subscription. I feel like this is something that Apple will reject us for, but I can't find any concrete information about it, and the review guidelines don't seem to cover this case.

I don’t have a direct answer but I did just recently watch the IAP-related WWDC 2018 sessions and they mentioned allowing free trials for non-subscription apps, which is new. I don’t remember seeing anything about your scenario (either in your favour or against you), but I wasn’t specifically seeking that info so I could’ve missed it. The latest sessions on subscriptions are always worthwhile anyway, if you haven’t already watched them.

Simulated
Sep 28, 2001
Lowtax giveth, and Lowtax taketh away.
College Slice

dizzywhip posted:

Curious if anyone has any insight into whether Apple allows this. My company's app has an autorenewable subscription with a free trial that's required as part of the signup process. To reduce friction, they want to remove the subscription step from the signup process and instead track the free trial time on our end. After the trial ends, the user is locked out of the app until they purchase a subscription.

So we basically want to roll our own free trial system while still using a regular autorenewable subscription. I feel like this is something that Apple will reject us for, but I can't find any concrete information about it, and the review guidelines don't seem to cover this case.

It would mean your free trials don't auto-convert to subscriptions. That is going to drastically lower your conversion rate.

I do not know if you will get rejected. Reach out to App Store Review with your scenario and ask for advice, they are the authority on what is or isn't allowed.

edit: If you DM me, I can put you in touch with someone in App Store Marketing who can provide some guidance here.

Simulated fucked around with this message at 07:11 on Aug 30, 2018

dizzywhip
Dec 23, 2005

Simulated posted:

It would mean your free trials don't auto-convert to subscriptions. That is going to drastically lower your conversion rate.

Agreed -- our product guy thought it was worth the tradeoff to reduce the initial dropout during signup, but they ended up changing their mind for this exact reason, so we're not looking into it anymore :shobon: Appreciate the tips, it's probably worth checking out the IAP sessions anyways.

SaTaMaS
Apr 18, 2003
I have a 3rd party framework which is used in both a sub-project (that I have set up as a library) and my main project. When I only include the library in one or the other I get a linker error, but when I include it in both I get the error:

Class <SharedClass> is implemented in both <SubProject> and <MainProject>. One of the two will be used. Which one is undefined.

How do I include the framework in both without getting a conflict?

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
Is the third party framework a static or dynamic library? If it’s dynamic I think you can just link against it from both and you should be ok? From the sounds of things it’s static, in which case you should try linking it only in the subproject but add the third party framework's headers to your main project's header search paths build setting. That way you only link one copy of the library into your main project's product.

Disclaimer: when confronted with scenarios like yours I tend to end up mashing buttons until something happens that approximates what I want. So I may have led you on a wild goose chase here.

SaTaMaS
Apr 18, 2003

pokeyman posted:

Is the third party framework a static or dynamic library? If it’s dynamic I think you can just link against it from both and you should be ok? From the sounds of things it’s static, in which case you should try linking it only in the subproject but add the third party framework's headers to your main project's header search paths build setting. That way you only link one copy of the library into your main project's product.

Disclaimer: when confronted with scenarios like yours I tend to end up mashing buttons until something happens that approximates what I want. So I may have led you on a wild goose chase here.

It's a dynamic library. I tried linking the same library file in both the parent and sub-project since if I don't provide something for "Linked Framework and Libraries" I get linker errors, but what Xcode seems to want to do is still include the same framework file twice so that there is the duplication.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
I see. Well, unfortunately, we’ve reached the limit of my understanding of linking in Xcode projects, so I hope someone else has thoughts to share!

Glimm
Jul 27, 2005

Time is only gonna pass you by

SaTaMaS posted:

I have a 3rd party framework which is used in both a sub-project (that I have set up as a library) and my main project. When I only include the library in one or the other I get a linker error, but when I include it in both I get the error:

Class <SharedClass> is implemented in both <SubProject> and <MainProject>. One of the two will be used. Which one is undefined.

How do I include the framework in both without getting a conflict?

I think you want to embed and link it in your subproject and just link it in your main project. You may also need to include it as part of the build process in the subproject scheme (seems weird but Xcode doesn't do this automatically afaik).

Glimm fucked around with this message at 17:29 on Sep 3, 2018

SaTaMaS
Apr 18, 2003
It turned out the key was dragging/reordering the frameworks in "Link Binary with Libraries" so that the sub-project was linked before the library. +1 for button mashing! :f5:

brap
Aug 23, 2004

Grimey Drawer
Troubleshooting iOS build configuration is about as fun as pulling your own teeth out with pliers.

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

brap posted:

Troubleshooting iOS build configuration is about as fun as pulling your own teeth out with pliers.

Xcode betas are so fun for this.

Good Sphere
Jun 16, 2018

I've been doing a lot to try to get performance boosts with realtime CIImage filters. My most recent dramatic change has been skipping every other capture from captureOutput. Sounds terrible, but the output onto the screen looks just a tiny bit less smooth, and my heavier filters no longer throttle the battery.

Apple also suggests downsampling, applying filters, then up-res'ing. I still need to experiment with the best way to do that. I dabbled in trying to get my head around Metal, but looks really involved, and I don't see including that in a timely manner unfortunately.

lord funk
Feb 16, 2004

Good Sphere posted:

Apple also suggests downsampling, applying filters, then up-res'ing. I still need to experiment with the best way to do that. I dabbled in trying to get my head around Metal, but looks really involved, and I don't see including that in a timely manner unfortunately.

Yeah I've been using performance shaders in Metal, and been delightfully impressed by their ease of setup, but that's only after a year of getting to know Metal to that point. The blur performance shader is great, but I'm also to the point where I want to downsample + filter + upsize. Got a link to where you read that from Apple?

Good Sphere
Jun 16, 2018

lord funk posted:

Yeah I've been using performance shaders in Metal, and been delightfully impressed by their ease of setup, but that's only after a year of getting to know Metal to that point. The blur performance shader is great, but I'm also to the point where I want to downsample + filter + upsize. Got a link to where you read that from Apple?

Last evening I became really jealous when I compared my camera's smoothness to Facebook's. I think it's super vital of me now to use Metal, but how to adapt to that where my app is now is really confusing me. (I'm not a CS major, and I can feel when my intelligence hits a wall and my brain helplessly turns off)

Quote from the docs:

quote:

User smaller images when possible.
Performance scales with the number of output pixels. You can have Core Image render into a smaller view, texture, or framebuffer. Allow Core Animation to upscale to display size.
https://developer.apple.com/library...001185-CH10-SW1

Good Sphere
Jun 16, 2018

Yesterday I found the holy grail of using a Metal view through the camera: https://github.com/FlexMonkey/CoreImageHelpers/tree/master/CoreImageHelpers/coreImageHelpers

The orientation and size is wrong right now, and so far I'm just using their imageView.swift for the Metal image view, but I'm getting really good results! :dance: The CPU percent is about the same, but what is no longer happening is throttling which was killing the battery! I'm really hoping this isn't because it's drawing on what looks to be a quarter of the screen than what I had before. I think it's just scaling the view strangely, but I'm optimistic I'm going to get better results than what I had before regardless.

I'm using the existing camera setup I had before, and not CameraCaptureHelper. Their document's introduction says "CameraCaptureHelper for grabbing a series of CIImage instances from either the front or back camera", which I haven't determined yet if it implies better performance than what I have now.

Kinda flabbergasted right now since everything else I've seen looked to involve a lot more, and these helpers are deceptively small.

Doctor w-rw-rw-
Jun 24, 2008

Good Sphere posted:

Last evening I became really jealous when I compared my camera's smoothness to Facebook's. I think it's super vital of me now to use Metal, but how to adapt to that where my app is now is really confusing me.
That isn’t using Metal though, FYI.

Apple is deprecating OpenGL though so ¯\_(ツ)_/¯

Good Sphere
Jun 16, 2018

Doctor w-rw-rw- posted:


Apple is deprecating OpenGL though so ¯\_(ツ)_/¯

What, seriously? OpenGL is something you should be able to do on every modern OS. They’re getting rid of it in hopes more people will use Metal?

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Doctor w-rw-rw- posted:

That isn’t using Metal though, FYI.

Apple is deprecating OpenGL though so ¯\_(ツ)_/¯

Apple has deprecated OpenGL on macOS and OpenGL ES on iOS and tvOS.

That means “it won’t be getting new features and you shouldn’t use it in new software.”

Don’t say “is deprecating” as if it’s synonymous with “is removing;” software that used OpenGL on macOS and OpenGL ES on iOS and tvOS will still run and long-term binary compatibility is generally pretty important to Apple.

Doctor w-rw-rw-
Jun 24, 2008

Good Sphere posted:

What, seriously? OpenGL is something you should be able to do on every modern OS. They’re getting rid of it in hopes more people will use Metal?

eschaton posted:

Apple has deprecated OpenGL on macOS and OpenGL ES on iOS and tvOS.

That means “it won’t be getting new features and you shouldn’t use it in new software.”

Don’t say “is deprecating” as if it’s synonymous with “is removing;” software that used OpenGL on macOS and OpenGL ES on iOS and tvOS will still run and long-term binary compatibility is generally pretty important to Apple.
Eh. I used it like I meant it. Apple has a track record of making some deprecated things useless at a shorter timescale than everyone else. It's occasionally a good thing, when it lets iOS shed some baggage and get better overall. When Apple deprecates something, it commits to it more than other companies do. What this should translate to for an indie developer is: "At some point Apple is going to take a hard line and gently caress your app over if you haven't read between the lines and gotten ready. Consider this your warning." - I mean, look at USB. We have Apple to both thank for it and blame for the loving mess that ensued - though USB was more open than, say, Thunderbolt, which you can see USB-C kind of winning against if you squint.

Not that the writing hasn't already been on the wall for OpenGL for some time - calling macOS's OpenGL "supported" has been a joke for years anyways. And to be fair, getting rid of OpenGL as a supported API isn't the worst decision - Metal is, strictly speaking, better. Problem is, so is Vulkan, and everyone else is settling on that.

A couple things to wonder about-
WebGL. Currently implemented using ANGLE, which emulates OpenGL ES, and has a Direct3D, Desktop OpenGL, and Vulkan backend. WebGL is basically OpenGL ES: Javascript edition, and is generally implemented with ANGLE. Maybe MoltenGL is the answer?
VR. So they're not involved with OpenXR, and not going to support OpenGL or Vulkan...I mean, personally, I think they're just digging themselves into a hole.

With that said, pretty much everyone will just use Unity and Unreal and shrug, and the small percentage of people who are fully committed to OpenGL ES to support multiple platforms and can't use MoltenGL get to rebuild their stuff. All in all, this is another case of Apple preferring to do the technically better thing (at the moment) on their own rather than go to the trouble of doing the technically better thing with the rest of the industry, sometimes creating /practically/ inferior solutions for anything with a lot of layers on top.

tl;dr: Apple will do it and get away with it because it's worth it and most devs won't need to worry about it. We'll have better but less open/less uniform APIs to work with, and compatibility will suffer.

(ps: I'm not currently privy to any private information on this, in case it had to be said)

Doctor w-rw-rw- fucked around with this message at 07:08 on Sep 9, 2018

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?
As if WebGL matters to pretty much anyone.

Doctor w-rw-rw-
Jun 24, 2008

eschaton posted:

As if WebGL matters to pretty much anyone.
:psypop:

Jesus Christ. Yes, yes it does. What the gently caress? It matters to a huge number of developers. Seriously, what the gently caress?

If I'm being generous, then perhaps it's because close to none of them are on iOS, and many fewer are on macOS than on Android or Windows, that you don't take it seriously, but drat, man. That's the bad side of the reality distortion field at work.

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?
I was kidding, I’m sure there’s some set of developers to whom WebGL matters.

I suspect they don’t have much to worry about though, if WebGL isn’t deprecated—and, as I pointed out, even if it is!

But “a huge number of developers,” really? WebGL?

Or is it something that you happen to be paying attention to and are extrapolating from?

Doctor w-rw-rw-
Jun 24, 2008

eschaton posted:

I was kidding, I’m sure there’s some set of developers to whom WebGL matters.

I suspect they don’t have much to worry about though, if WebGL isn’t deprecated—and, as I pointed out, even if it is!

But “a huge number of developers,” really? WebGL?

Or is it something that you happen to be paying attention to and are extrapolating from?

Yeah, I did some stuff related to it a little while back. I wouldn't call it popular generally but I would call it significant, and popular for certain kinds of things that I happen to be paying attention to.

Basically, deprecating OpenGL means deprecating WebGL unless work is done to effectively maintain OpenGL compatibility in some form. It's not impossible to write native plugins that will fill the hole, though – Google could probably shovel a bunch of engineers into coming up with a solution that works for Chrome, but it's still an open question what Apple does with it.

Apple's approach to graphics APIs in general seems to be putting them even further down the path of "nobody doing serious VR is going to consider Apple". I could be wrong and Apple is making some amazing AR or VR devices, but unless they've leapfrogged the state of the art in secret (I guarantee they haven't), they're going to have a rough time keeping up if they isolate themselves technically from everything else that's getting built.

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?
Apple did not deprecate WebGL in Safari 12 and I think developers can even enable some new WebGL features under development. What that means for Chrome or Firefox or emacs w3-mode support of WebGL is up to their respective developers.

You seem really focused on which specific 3D APIs are supported where. Why do you think it should be important to Apple to let others dictate the APIs their platform provides? After all, that’s essentially what “Apple isn’t using PHIGS Renderman OpenGL v.Latest Vulkan!” translates to.

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?
Also I wouldn’t call WebGL “significant,” I’d call it “extremely niche” and I was honestly surprised to learn Safari 12 supports some new WebGL features of some sort.

The web browser is not the place for 3D, just like web pages aren’t applications. Applications should be written using the native frameworks of the platform and follow its conventions for the best possible user experience.

Workaday Wizard
Oct 23, 2009

by Pragmatica

eschaton posted:

Also I wouldn’t call WebGL “significant,” I’d call it “extremely niche” and I was honestly surprised to learn Safari 12 supports some new WebGL features of some sort.

The web browser is not the place for 3D, just like web pages aren’t applications. Applications should be written using the native frameworks of the platform and follow its conventions for the best possible user experience.

while you’re in the 90s can you tell my dad i love him. thanks

Stringent
Dec 22, 2004


image text goes here

Shinku ABOOKEN posted:

while you’re in the 90s can you tell my dad i love him. thanks

once he gets done playing that flash game, sure

Adbot
ADBOT LOVES YOU

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe

Doctor w-rw-rw- posted:

Basically, deprecating OpenGL means deprecating WebGL unless work is done to effectively maintain OpenGL compatibility in some form.

WebGL is an abstract interface based roughly on OpenGL ES 2 that does not have to be implemented 1-1 in terms of an underlying OpenGL ES 2 implementation. Chrome implements WebGL using DirectX on Windows, and Safari implements WebGL on the Mac using regular OpenGL, which occasionally requires a pretty non-trivial amount of translation. Implementing WebGL using Metal is not at all infeasible as a long-term solution.

You could also have tried looking for information about whether Safari was deprecating WebGL:

https://twitter.com/grorgwork/status/1004074501313736704

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply