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
Doctor w-rw-rw-
Jun 24, 2008

lord funk posted:

PLR3YPWFF79F
Taken. Looks good enough that I'm going to be brutal. Played with it for about 30 minutes and here's what I found:

  • App startup: I see the title card but there's zero visible activity, so I can't tell what it's doing. I had to force quit and restart to see anything.
  • Performance tab: The x2 doesn't make it clear that a double tap is required on first use. Maybe if someone doesn't do anything but tap on the settings box several times with nothing else happening, pop up a box telling them to double-tap (add a checkmark to disable showing it again, for power users).
  • Performance tab: Are you using UIView animations to animate the dots to the UITouch locations? The lag is noticeable. Why not just follow the touches exactly?
  • Performance tab: There should be a subtle gradient underneath "All Patches" in the hamburger popover.
  • Performance tab: Tapping the hamburger repeatedly to toggle it to an X enough times results in a stuck X even with a closed popover.
  • The alert icon in the hamburger popover responds to touches but it doesn't actually do anything, and touches that miss it fall through to the patch table view cell underneath.
  • The tab bar is incredibly unresponsive. You might be doing too much main-thread-blocking work in viewDidAppear/viewWillDisappear.
  • Load tab: The hamburger edit button for load/save patches should be dual-state, and shouldn't be a hamburger button, since that meaning is overloaded in general but also in the app itself. A normal Edit/Done button is totally fine.
  • Load tab: Your flag icon looks unbalanced because its center of mass, so to speak, appears above the midpoint. Subtle and most people won't care, I'm sure.
  • Load tab: The paging indicator isn't sufficient to expose the other pieces of app functionality, which are barely explained.
  • Load tab: The organizer renaming doesn't cancel when you tap outside of the folder and it's easy enough to tap into that and the reverse interaction isn't nearly as cheap. I also don't have a clue what the organizer does in the context of Load/Share, with the Patches stuff also on the left. :???:
  • Load tab: The drawer for the performance is kind of weird, and non-obvious.
  • Patch tab: Seriously? You have three different hamburger buttons?
  • Patch tab: Highlighting is not sufficient for a toggle. Use a check mark.
  • Patch tab: Expandable dropdowns aren't called out and for all I know look identical to toggle cells.
  • Patch tab: Tapping the slider cells doesn't provide a UI cue that I need to drag on the hexagons.
  • Patch tab: OSC Setup: The IP address has a nice custom keypad but doesn't automatically proceed to the next text field (forgivable), or even when I tap the '.' button (not). Tapping escape doesn't cancel, but instead deletes the contents of the text field.
  • Patch tab: OSC Setup: All the other fields restore themselves when they're tapped out of, except for tag, which doesn't, and also doesn't have any sort of reset-to-default button to compensate for the difference in behavior (either choice would work I suppose)
  • Patch tab: Double tapping cells causes a flicker. Are you not beginning the animation from current state?
  • Your Performance hamburger popover has scroll view bouncing enabled, as do both scrollviews in Load/Save, but not the root table view in the utilities popover in the patch menu (but yes in some of the stuff it pushes), and not in the settings left view controller (but yes in the right settings view controller). Why the inconsistency?
  • Settings: The max touches slider changes its appearance to indicate it's hit max value but has no matching minimum value change of appearance (On further checking with the message delay option, this just looks like a bug in the control). The notches also mean exactly nothing, and the bottom scroll range is huge with no obvious edge, and the top scroll range is extremely short.
  • There's a lag when selecting colors. This should not be expensive. Are you implementing it with NSNotificationCenter or something?
  • General UI complaint: you don't use color at all to highlight the changing numerical values when the sliders are active, so it's harder to notice the actual change. Brighten up the number or something.
  • Help: Your sharing video zoomout is too slow. Also the video view animates in from the right position, but animates out to 0,0. Can you do anything about that?
  • Are you really using no software that requires disclaimers/licenses to be called out?
  • Performance: It stutters. Are you using CAReplicatorLayers for some of the super-repetitive geometric shapes? You may be able to greatly reduce the number of layers/views displayed if not.

Doctor w-rw-rw- fucked around with this message at 23:25 on Jun 13, 2014

Adbot
ADBOT LOVES YOU

tractor fanatic
Sep 9, 2005

Pillbug
This is an Xcode question rather than a development question, but is there any way I can get Xcode to follow my indentation, like Visual Studio does?

For example, both Xcode and VS will want to indent after this:

C++ code:
namespace butt{
    > VS and Xcode starts here
But if I write a class and manually unindent it, VS won't indent the following lines, but Xcode will. Is there any way I can get it to copy what I do?

C++ code:
namespace butt{

class poop{
};

> VS starts here
    > Xcode starts here

lord funk
Feb 16, 2004

Doctor w-rw-rw- posted:

Taken. Looks good enough that I'm going to be brutal.
:dance: I was hoping for this.

Things already on the to-do list (more specifically, the for-gods-sake-ship-it list):

Doctor w-rw-rw- posted:

  • Performance tab: There should be a subtle gradient underneath "All Patches" in the hamburger popover.
  • Performance tab: Tapping the hamburger repeatedly to toggle it to an X enough times results in a stuck X even with a closed popover.
  • Load tab: The organizer renaming doesn't cancel when you tap outside of the folder and it's easy enough to tap into that and the reverse interaction isn't nearly as cheap. I also don't have a clue what the organizer does in the context of Load/Share, with the Patches stuff also on the left. :???:
  • Patch tab: OSC Setup: The IP address has a nice custom keypad but doesn't automatically proceed to the next text field (forgivable), or even when I tap the '.' button (not). Tapping escape doesn't cancel, but instead deletes the contents of the text field.
  • Patch tab: Tapping the slider cells doesn't provide a UI cue that I need to drag on the hexagons.

Clarification:

quote:

[*]App startup: I see the title card but there's zero visible activity, so I can't tell what it's doing. I had to force quit and restart to see anything.
Did it really hang completely on startup? I have a 1.5 second delay before an activity indicator appears. I put the delay in because it loads quick enough on recent iPads that it looks silly when it starts immediately.

quote:

[*]Load tab: The drawer for the performance is kind of weird, and non-obvious.
I know, it was the same in the other app. I don't know how to call attention to it other than: the soft elbow arrow always means 'draggable' in the app.

quote:

[*]Performance tab: Are you using UIView animations to animate the dots to the UITouch locations? The lag is noticeable. Why not just follow the touches exactly?
OpenGL, and I don't know what you mean by follow exactly. Updated touch locations are drawn in the next GL frame. My OpenGL work is admittedly mediocre, but I'm not sure I'm significantly behind the normal screen lag.

quote:

[*]The alert icon in the hamburger popover responds to touches but it doesn't actually do anything, and touches that miss it fall through to the patch table view cell underneath.
This sends an 'All Notes Off' MIDI message to turn off stuck MIDI notes. I may flash a message or something, and will block missed touches from falling through

quote:

[*]There's a lag when selecting colors. This should not be expensive. Are you implementing it with NSNotificationCenter or something?
What's expensive is the actual app color change that happens beneath it. The background gradient is not a gradient layer, it's done in OpenGL to match exactly what the Performance screen draws. An image is saved for the non-Settings screens to call up. I'll work on getting it out of the way of the interface.

quote:

[*]General UI complaint: you don't use color at all to highlight the changing numerical values when the sliders are active, so it's harder to notice the actual change. Brighten up the number or something.
You're referring to the Settings / Utilities slider values? The Patch output slider values do invert the textfield / text color while sliding. I'll get the tableview versions up to speed.

quote:

[*]Help: Your sharing video zoomout is too slow. Also the video view animates in from the right position, but animates out to 0,0. Can you do anything about that?
I noticed the animating back to 0,0, and couldn't figure it out (back burner for-gods-sake-ship-it list).

quote:

[*]Performance: It stutters. Are you using CAReplicatorLayers for some of the super-repetitive geometric shapes? You may be able to greatly reduce the number of layers/views displayed if not.
Mediocre OpenGL programming on my part. Bad enough that I have a 'Reduced Drawing Mode' setting to get the responsiveness up. Having that scrolling UILabel message list really doesn't help things either.

quote:

[*]Are you really using no software that requires disclaimers/licenses to be called out?
Jesus I can't believe I forgot to cite them. Will do.

BIG THANKS for taking the time to put this list together. All the issues are in my queue now. Really, really appreciate it. :)

Doctor w-rw-rw-
Jun 24, 2008

lord funk posted:

Did it really hang completely on startup? I have a 1.5 second delay before an activity indicator appears. I put the delay in because it loads quick enough on recent iPads that it looks silly when it starts immediately.
Yep. Straight-up hung, and there was no spinner to indicate the app was 'thinking'.

lord funk posted:

I know, it was the same in the other app. I don't know how to call attention to it other than: the soft elbow arrow always means 'draggable' in the app.
Position the indicator above the Performance tab button and bounce it gently on the first switch away from the performance tab after app launch.

lord funk posted:

OpenGL, and I don't know what you mean by follow exactly. Updated touch locations are drawn in the next GL frame. My OpenGL work is admittedly mediocre, but I'm not sure I'm significantly behind the normal screen lag.
http://tinypic.com/r/2dlu9z/8 (apologies for the tinypic link and their lovely transcode, didn't know where else to upload it; I don't upload to YouTube)
You can see a noticeable lag between touches and the responsiveness of the touch indicators.

lord funk posted:

What's expensive is the actual app color change that happens beneath it. The background gradient is not a gradient layer, it's done in OpenGL to match exactly what the Performance screen draws. An image is saved for the non-Settings screens to call up. I'll work on getting it out of the way of the interface.
Can't say for sure it'd be better, but if you queued up that background change so the selector changes in response to touches more quickly, that might be good. That is, the perception of speed might be affected by having the control be more responsive, not necessarily the background color change. Again, can't say for sure, though, because I don't know if it's possible to do queue up OpenGL commands on its own thread or queue. Though I imagine Metal might help in that regard (though it'd tie you to the platform), what with its command-submission pattern (don't know much about this other than what a friend at Apple explained to me). Blah blah blah basically see if you can get the selection to move quickly, and queue up the actual background change.

lord funk posted:

You're referring to the Settings / Utilities slider values? The Patch output slider values do invert the textfield / text color while sliding. I'll get the tableview versions up to speed.
Yes, indeed.

lord funk posted:

Mediocre OpenGL programming on my part. Bad enough that I have a 'Reduced Drawing Mode' setting to get the responsiveness up. Having that scrolling UILabel message list really doesn't help things either.
Don't know how you're implementing it, but if you're not reallocating the UILabels and are instead reusing them, it should be fine. I assume you're animating the alpha? Much cheaper than animating the color, because alpha is a simple GPU thing rather than rendering a new texture. If you want to go nuts on optimizing this, you can use TextKit on background threads, with the caveat that text layout on the main thread might take out locks and won't necessarily totally unblock the main thread if something else needs to render tons of text. Or you could wait for Facebook DisplayNode to release and make use of their revamped text rendering system that does a lot of the more expensive text operations in the background (though I can't say how much of a main-thread performance win that will be - I don't know)

lord funk
Feb 16, 2004

Doctor w-rw-rw- posted:

Yep. Straight-up hung, and there was no spinner to indicate the app was 'thinking'.
Well poo poo.

quote:

http://tinypic.com/r/2dlu9z/8 (apologies for the tinypic link and their lovely transcode, didn't know where else to upload it; I don't upload to YouTube)
You can see a noticeable lag between touches and the responsiveness of the touch indicators.
I see it. It's slightly worse than standard screen latency. I will look into it. The challenge is to make sure there is no timing hit for the MIDI / OSC messaging. In the end it's an audio app, and those messages get precedence over graphics.

Re: color change: on further review it probably is an NSNotification slowdown (as you suspected) for the app-wide color changes.

Re: label updating: it is just an animated alpha. Instruments says that the NSString formatting is the biggest processor hit, but it's the main thread blocking of setting the labels that can cause the graphics to stop updating. This happens when there are hundreds of messages being pushed, and I haven't implemented a ceiling / cap to prevent it yet.

One thing you didn't mention (maybe it just wasn't clear you could do it) was the patch dragging from the Load / Share tableview into the group folders in the Organizer view. It's how you collect / tag patches so you can quickly pull up a folder in the Performance view with just the patches you want. Implementing that cell dragging was a fun challenge.

Simulated
Sep 28, 2001
Lowtax giveth, and Lowtax taketh away.
College Slice
Does anyone here use a simple static blog or whatever for their app site? Any recommendations?

I can't stand keeping up with stupid wordpress updates and I realize that I just need a simple/easy way to communicate with my customers. I don't think anyone buys my app based on the website, so I'm trying to cut down on the "non-development BS" tasks.

Doctor w-rw-rw-
Jun 24, 2008

Ender.uNF posted:

Does anyone here use a simple static blog or whatever for their app site? Any recommendations?

I can't stand keeping up with stupid wordpress updates and I realize that I just need a simple/easy way to communicate with my customers. I don't think anyone buys my app based on the website, so I'm trying to cut down on the "non-development BS" tasks.
Generate with Jekyll, upload to S3, use Route53 so you can have the root domain redirect to the www subdomain (example.com -> www.example.com). Cheap, and something close to perfect uptime.

lord funk posted:

I see it. It's slightly worse than standard screen latency. I will look into it. The challenge is to make sure there is no timing hit for the MIDI / OSC messaging. In the end it's an audio app, and those messages get precedence over graphics.

Re: color change: on further review it probably is an NSNotification slowdown (as you suspected) for the app-wide color changes.
Are you running the MIDI / OSC messaging on a different GCD queue / operation queue / thread (whichever applies)? Is there anything tying it to the main thread? The main thread is nothing special except that it's where the UI lives and some of the system's mechanisms need to use it. If you're not using thread-unsafe APIs you should be good. Here's a list: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/ThreadSafetySummary/ThreadSafetySummary.html but don't be fooled - don't use NSNotifications off the main thread.

Also, heh, yeah, I actually guessed you were probably using NSNotifications *because* of the pause. It's a pretty big main thread blocker and small operations will add up a lot.

lord funk posted:

Re: label updating: it is just an animated alpha. Instruments says that the NSString formatting is the biggest processor hit, but it's the main thread blocking of setting the labels that can cause the graphics to stop updating. This happens when there are hundreds of messages being pushed, and I haven't implemented a ceiling / cap to prevent it yet.
The setting of the labels is probably where the layout is happening, I think. In the first place, if that text isn't interactable, using a UIView subclass is a bit wasteful because they're expensive and they hook into the event subscription mechanism so they get hit-tested. Background rendering is complex, though, so you probably want to wait for DisplayNode.

lord funk posted:

One thing you didn't mention (maybe it just wasn't clear you could do it) was the patch dragging from the Load / Share tableview into the group folders in the Organizer view. It's how you collect / tag patches so you can quickly pull up a folder in the Performance view with just the patches you want. Implementing that cell dragging was a fun challenge.
Did not realize that at all.

Doc Block
Apr 15, 2003
Fun Shoe

Ender.uNF posted:

Does anyone here use a simple static blog or whatever for their app site? Any recommendations?

I can't stand keeping up with stupid wordpress updates and I realize that I just need a simple/easy way to communicate with my customers. I don't think anyone buys my app based on the website, so I'm trying to cut down on the "non-development BS" tasks.

Jekyll. You can put your site on a cheap VPS, static sites don't have much overhead or need much CPU power.

kitten smoothie
Dec 29, 2001

edit: n/m

Simulated
Sep 28, 2001
Lowtax giveth, and Lowtax taketh away.
College Slice
LOL at whoever left this amusing warning in the code at Apple:

quote:

*** -[__NSCFCalendar components:fromDate:]: date cannot be nil
I mean really, what do you think that operation is supposed to mean with a nil date?
An exception has been avoided for now.
A few of these errors are going to be reported with this complaint, then further violations will simply silently do whatever random thing results from the nil.
Here is the backtrace where this occurred this time (some frames may be missing due to compiler optimizations):


I swear, this is 100% copy/paste what the message prints.

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Ender.uNF posted:

LOL at whoever left this amusing warning in the code at Apple:



I swear, this is 100% copy/paste what the message prints.

I can almost see the thought process. Someone said "this ought to throw an exception", then it broke ten thousand internal apps and beta versions, so they begrudgingly changed it back.

Flobbster
Feb 17, 2005

"Cadet Kirk, after the way you cheated on the Kobayashi Maru test I oughta punch you in tha face!"
Apple typography experts: If I have a button whose font is set to Helvetica and I set its title to be a string that uses, say, Japanese characters, iOS is smart enough to find the font that it should use to render those characters. But if none of the installed fonts have the glyph it needs, usually I get something like a boxed question mark, or a boxed alien head.

Is there any API, like in Core Text maybe, that lets me say "given this character, can any font render it or will I get the placeholder character," so that I can take some other action? There seem to be various glyph-info-related APIs here but I think they assume that I already have the font I want to check, and iterating over all fonts in the system seems like the wrong way to go about this.

Doctor w-rw-rw-
Jun 24, 2008

Flobbster posted:

Apple typography experts: If I have a button whose font is set to Helvetica and I set its title to be a string that uses, say, Japanese characters, iOS is smart enough to find the font that it should use to render those characters. But if none of the installed fonts have the glyph it needs, usually I get something like a boxed question mark, or a boxed alien head.

Is there any API, like in Core Text maybe, that lets me say "given this character, can any font render it or will I get the placeholder character," so that I can take some other action? There seem to be various glyph-info-related APIs here but I think they assume that I already have the font I want to check, and iterating over all fonts in the system seems like the wrong way to go about this.

http://stackoverflow.com/questions/20735902/how-can-i-find-a-font-that-contains-a-given-character

How do you propose to check without iterating over all the fonts in the system? Do it once per iOS version and take note of the results. Hardcoding to the entire platform and version - 1 seems pretty safe to me.

Flobbster
Feb 17, 2005

"Cadet Kirk, after the way you cheated on the Kobayashi Maru test I oughta punch you in tha face!"

Doctor w-rw-rw- posted:

http://stackoverflow.com/questions/20735902/how-can-i-find-a-font-that-contains-a-given-character

How do you propose to check without iterating over all the fonts in the system? Do it once per iOS version and take note of the results. Hardcoding to the entire platform and version - 1 seems pretty safe to me.

Thanks, I'll look into that -- it looks like UIFontDescriptorCharacterSetAttribute and matchingFontDescriptors... do what I need.

When I said that I didn't want to iterate over all the fonts in the system, I meant that I was hoping to take advantage of whatever tables the OS might have already built internally, instead of iterating over the fonts myself. I think this will do the trick.

lmao zebong
Nov 25, 2006

NBA All-Injury First Team
General beta timelines indicate that we should probably see Beta 2 today or tomorrow, correct? I've really tried to be a good Apple dev and make detailed crash reports for everything I've been seeing but this Beta 1 has made my phone near unusable :( My phone has been crashing back to the apple logo after about ~12-15 minutes of straight usage (Podcast playback, Safari browsing, anything that keeps the phone active) consistently so I can't wait to see if the new beta fixes this issue.

It's been strange because everyone else on my team who installed the Beta has said it's been the most stable Beta 1 they can remember, but this has been much worse than the iOS 7 Beta for me.

Doctor w-rw-rw-
Jun 24, 2008

lmao zebong posted:

It's been strange because everyone else on my team who installed the Beta has said it's been the most stable Beta 1 they can remember, but this has been much worse than the iOS 7 Beta for me.

The iOS 7 beta was so, so bad.

Dessert Rose
May 17, 2004

awoken in control of a lucid deep dream...
The 7 beta was what made me stop installing beta OSes on "production" devices.

ultramiraculous
Nov 12, 2003

"No..."
Grimey Drawer

lmao zebong posted:

It's been strange because everyone else on my team who installed the Beta has said it's been the most stable Beta 1 they can remember, but this has been much worse than the iOS 7 Beta for me.

Seconding that this is one of the more stable Beta 1s. It's not something I'm even close to putting on a carry phone, if only because it's doing the typical "beta eats your battery" deal. I'm actually noticing way more issues with 3rd Party apps than anything else, which is why I'm hesitant to put it on anything I have to use regularly.

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

What's the standard way to register for scroll events within a UIWebView such that they're fired during finger-down-pan as well as during flick scrolling? scroll only fires when a flick scroll is finished, not during, and I've just cargo culted my way to registering for tapmove and gesturechange (!) based on random blog and Stack Overflow posts. I'm concerned that I'm going to miss some cases (meaning in my case that lazy loaded images won't be), and it definitely seems like overkill to watch all 3.

benisntfunny
Dec 2, 2004
I'm Perfect.

lmao zebong posted:

It's been strange because everyone else on my team who installed the Beta has said it's been the most stable Beta 1 they can remember, but this has been much worse than the iOS 7 Beta for me.

While I will say it's the best beta 1 I've ever used it has a fuckton of bugs. The good news is that almost every single one I submitted has been marked as "duplicate" so I have faith that they will get fixed.

A little faith.

Doctor w-rw-rw-
Jun 24, 2008

Subjunctive posted:

What's the standard way to register for scroll events within a UIWebView such that they're fired during finger-down-pan as well as during flick scrolling? scroll only fires when a flick scroll is finished, not during, and I've just cargo culted my way to registering for tapmove and gesturechange (!) based on random blog and Stack Overflow posts. I'm concerned that I'm going to miss some cases (meaning in my case that lazy loaded images won't be), and it definitely seems like overkill to watch all 3.

Not sure I understand properly. Would adding an action/target to the webview's pan gesture recognizer property (they're public now) work?

Alternatively, if you have a custom gesture recognizer class, like say, a directional pan gesture recognizer, you could add that to the webview, set your custom gesture recognizer's delegate to whatever class is handling it, and allow the pan gesture recognizers to recognize simultaneously. You might have to toggle off/on the webview's pan gesture recognizer to cancel it, though.

EDIT: Oh, you mean registering from Javascript? Not sure about that. Seems like it would eat up the main thread if it had to feed real-time scrolling info into a webview.

Doctor w-rw-rw- fucked around with this message at 01:54 on Jun 17, 2014

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

Doctor w-rw-rw- posted:

EDIT: Oh, you mean registering from Javascript? Not sure about that. Seems like it would eat up the main thread if it had to feed real-time scrolling info into a webview.

Yeah, from JS. Wouldn't be more expensive than the motion events that get sent, which turn out to cover the majority of scrolling, right? They only have to be dispatched if there are listeners, since they don't really propagate IIRC.

I will experiment, and/or read some WebKit code and hope it's representative!

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

Edit: network error double post. I'm on a roll today!

Doctor w-rw-rw-
Jun 24, 2008

Subjunctive posted:

Yeah, from JS. Wouldn't be more expensive than the motion events that get sent, which turn out to cover the majority of scrolling, right? They only have to be dispatched if there are listeners, since they don't really propagate IIRC.

I will experiment, and/or read some WebKit code and hope it's representative!
As far as I know, scrolling is optimized by changing the run loop mode to one that does a couple fewer things to save CPU. Ever noticed that animated gifs stop running while you're scrolling? That's the system saving itself work so it can keep scrolling smoothly. It looks like setTimeout isn't run during scrolling, either. Not sure I'd character sending motion events as cheap, considering that you only have 16.67 ms including all overhead to process each one or suffer frame drops, and JS bridging ain't free.

I found something called requestAnimationFrame in my googling. If that's a dead-end, you're probably out of luck unless you make the pan gesture recognizer execute Javascript in the web view's context, but that will also be expensive because of the bridging you'll have to do.

What are you trying to do, specifically?

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

Doctor w-rw-rw- posted:

As far as I know, scrolling is optimized by changing the run loop mode to one that does a couple fewer things to save CPU. Ever noticed that animated gifs stop running while you're scrolling? That's the system saving itself work so it can keep scrolling smoothly.

While you're absolutely right about the main thread run loop and that gifs stop animating in webviews during scrolling, there's no cause and effect there. Gifs only stop when the webview's scrollview is scrolling. Other scrollviews have no effect.

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

requestAnimationFrame is a setInterval replacement, won't really help.

I'm loading and unloading images as they scroll in and out of the viewport, so I want to be able to do so even mid-scroll. I don't care if it's composited immediately, so being behind a frame or two is fine (though 16ms is a lot of time for dispatching DOM events). All the UIWebView/WebKit machinery runs off the UI thread anyway, doesn't it?

Anyway, I can do it with the heady cocktail of scroll, tapmove, and gesturechange, so it's willing to dispatch frequently enough, I'm just hoping for something cleaner and/or more efficient.

Doctor w-rw-rw-
Jun 24, 2008

Subjunctive posted:

requestAnimationFrame is a setInterval replacement, won't really help.
Ah, okay. I don't know that much about web dev in JS.


Subjunctive posted:

I'm loading and unloading images as they scroll in and out of the viewport, so I want to be able to do so even mid-scroll. I don't care if it's composited immediately, so being behind a frame or two is fine (though 16ms is a lot of time for dispatching DOM events). All the UIWebView/WebKit machinery runs off the UI thread anyway, doesn't it?
While UIWebView obviously has a main thread affinity, WKWebView actually runs in an entirely different process, so that's not totally right.

Sounds like you've got the right idea. Here's the documentation for the events WebKit appears to support: https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariJSRef/_index.html

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

Doctor w-rw-rw- posted:

While UIWebView obviously has a main thread affinity, WKWebView actually runs in an entirely different process, so that's not totally right.

Right, sorry, I was imprecise. It means that the JS processing wouldn't affect the UI thread's ability to stay in its frame budget. WebKit-rendered effects might not be able to be 60Hz, but that's OK for what I'm doing (trying to do).

Doctor w-rw-rw- posted:

Sounds like you've got the right idea. Here's the documentation for the events WebKit appears to support: https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariJSRef/_index.html

Yeah, unfortunately those events don't fire during inertial deceleration. I think I have to go to the native side and bridge the delegate's methods myself or do all-JS scrolling takeover. I'll take a flyer and try in the webdev thread too.

lmao zebong
Nov 25, 2006

NBA All-Injury First Team
Looks like Beta 2 just got posted to the developer portal.

lord funk
Feb 16, 2004

lmao zebong posted:

Looks like Beta 2 just got posted to the developer portal.

Nice. Hope I can run Reveal the view debugger without crashing.

edit: nope

lord funk fucked around with this message at 21:53 on Jun 17, 2014

dizzywhip
Dec 23, 2005

In Yosemite, is there any standard API in NSWindow or NSToolbar or whatever to place the toolbar side-by-side with the traffic light buttons like they are in Safari/Xcode/etc, or do we still have to use something like INAppStoreWindow?

Toady
Jan 12, 2009

dizzywhip posted:

In Yosemite, is there any standard API in NSWindow or NSToolbar or whatever to place the toolbar side-by-side with the traffic light buttons like they are in Safari/Xcode/etc

Yes.

dizzywhip
Dec 23, 2005


Can...can you tell me what it is? I didn't see anything when I looked through the NSWindow/NSToolbar APIs.

Edit: Nevermind, I found it in the API diffs. You have to set NSWindow's titleVisibility to Hidden.

dizzywhip fucked around with this message at 02:12 on Jun 18, 2014

Toady
Jan 12, 2009

dizzywhip posted:

Can...can you tell me what it is? I didn't see anything when I looked through the NSWindow/NSToolbar APIs.

Edit: Nevermind, I found it in the API diffs. You have to set NSWindow's titleVisibility to Hidden.

It was also covered in the Yosemite WWDC videos.

dizzywhip
Dec 23, 2005

Nipplebox posted:

It was also covered in the Yosemite WWDC videos.

Ah, yeah I watched them but I must have forgotten that part.

lord funk
Feb 16, 2004

I am SO HAPPY right now: UITouch majorRadius is finally an exposed property in iOS 8! I'm seriously giddy right now. We can finally use this for music apps. No kidding: every single music app will have this implemented once word finally spreads.

haveblue
Aug 15, 2005



Toilet Rascal

lord funk posted:

I am SO HAPPY right now: UITouch majorRadius is finally an exposed property in iOS 8! I'm seriously giddy right now. We can finally use this for music apps. No kidding: every single music app will have this implemented once word finally spreads.

Does this mean that the iPhone touchscreen is now effectively pressure-sensitive?

lord funk
Feb 16, 2004

haveblue posted:

Does this mean that the iPhone touchscreen is now effectively pressure-sensitive?

Good enough to fake it, yes.

Froist
Jun 6, 2004

lord funk posted:

Good enough to fake it, yes.

I tried making a (admittedly crude) test app after you mentioned it and the accuracy seemed pretty low. I guess you could combine it with some heuristics about how the touch point is moving around, but as for purely reading the radius it didn't seem like you'd be able to do a lot :(

Adbot
ADBOT LOVES YOU

lord funk
Feb 16, 2004

Froist posted:

I tried making a (admittedly crude) test app after you mentioned it and the accuracy seemed pretty low. I guess you could combine it with some heuristics about how the touch point is moving around, but as for purely reading the radius it didn't seem like you'd be able to do a lot :(

It's enough to do this (t=0:16):
https://www.youtube.com/watch?v=ybGB5sr5JM8&t=16s

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