Craig Hockenberry Profile picture
May 9, 2018 11 tweets 4 min read Read on X
Now that we all have our .app TLD, we’ve got a little bit of work ahead of us. Your product site _must_ use HSTS (and, of course, HTTPS.)

security.googleblog.com/2017/09/broade…
For the HTTPS part, I highly recommend automating your SSL cert installation using Let’s Encrypt and acme.sh.

github.com/Neilpang/acme.…
HSTS is just header in the page you serve up over SSL. You can learn more about it and check your site here:

hstspreload.org
For some of us, it’s a little more work than others, but I think we can all agree that a secure (and private) web is a good thing these days.

iconfactoryapps.com
One final note: moving to HSTS is pretty much a one-way street: once you’re on the preload list (either by TLD or browser) it’s hard to get off. This explains why and gives server config examples:

raymii.org/s/tutorials/HT…
You can check the preload database by opening this URL in Chrome: chrome://net-internals/#hsts

If you do a query for any .app domain you’ll see this:

static_sts_domain: app
static_upgrade_mode: FORCE_HTTPS
This presents a chicken-and-the-egg problem for Let’s Encrypt: requests are limited to port 443, but you don’t have a cert for SSL yet. Luckily, you can issue without using TLS on that port.

For example, in nginx conf:

#listen *:443 ssl;
listen *:443;
And voilà!

linea.app
I’m seeing some people say they’re going to just setup a 302 redirect for their .app domain.

In order for that to work, it has to happen over SSL. Compare these results:

$ curl -I bitcam.app
$ curl -I bitcam.app

You can’t use registrar’s feature…
Now try to load bitcam.app in Chrome.

It works OK in Safari, but not for much longer…
Crap, Twitter’s URL shortener screwed up this tweet. Do a curl command against both the HTTP and HTTPS domains - your registrar doesn’t provide a cert so the SSL redirect can’t work.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Craig Hockenberry

Craig Hockenberry Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @chockenberry

Sep 21, 2022
Who at Apple thought that this was a keyboard layout worth investing time in?

(That's a trick question: the answer is "no one" - this thing is buggy as hell!) Image
A fun UIKeyboard notification fact: there are two active keyboard frames in this screenshot. And both are as wide as the screen, even though they aren't.

Pico isn't impressed. Image
It's a shame that it's impossible for an app to determine the state of the keyboard (either physical or virtual).

There's a ton of inference involved - is the frame height less than the height of "keys" or how big is this frame relative to my inputAccessoryView?
Read 6 tweets
Sep 19, 2022
If you're interested in some of the SwiftUI techniques we used to build @wallaroo_app, check out the Iconfactory blog. @BigZaphod is going to spend the week showing our solutions for common issues. First up, using the Layout protocol in a ScrollView:

blog.iconfactory.com/2022/09/wallar…
Next up in @BigZaphod's series of SwiftUI in @wallaroo_app: how he did the parallax effect while scrolling. Also, some pointers on how to use blurhash for better previews:

blog.iconfactory.com/2022/09/wallar…
Today's installment exploring SwiftUI in @wallaroo_app by @BigZaphod: scrolling hitches caused by AsyncImage and .mask modifiers. Also, caching lots of remote images.

blog.iconfactory.com/2022/09/wallar…
Read 7 tweets
Jun 7, 2022
Did you know that you can run macOS Ventura in a virtual machine on Apple Silicon using sample code? It's a great way to kick the tires without disk partitioning, rebooting, etc. Thread...
First step: get the sample code here: developer.apple.com/documentation/…

And Read The Fine Manual. But, of course, you won't.
Select the InstallationTool-Swift target and run it. The debug console will give you feedback. There are two phases: download (which takes awhile) and install (which takes awhile). Be patient (I wasn't). You need about 83 GB of free space.
Read 10 tweets
Oct 7, 2021
A new version of @kaleidoscopeapp is now available.

I’ve been beta testing it for the past couple of months and it’s great. Stuff I rely on remains reliable and new things don’t get in the way. A smooth transition.

kaleidoscope.app

Now, let’s talk about that price…
@kaleidoscopeapp "Holy crap!" "$150!" "WTH!!!!"

Yeah, and that's a bargain. Why?
@kaleidoscopeapp As far as I can tell, I spent $30 for the app back in 2013. So a tool that I've been using _every day_ for the past eight years has cost me $0.01 PER DAY.

That's a hell of a deal for what I've been getting.
Read 8 tweets
Sep 1, 2021
So many people are having problems with the new Banking Information requirements in App Store Connect.

Here is what you need to do:
1) Go to Agreements, Tax, and Banking, then select Banking in the subnav.

You should see a list of your bank accounts. Likely, there is only one. Click on that.
Here comes the fun part: you may or may not see Address, City, State, etc. fields.

If you don't see it, refresh the page. Then do it again. Keep going until you see it. Then enter your info, but don't enter the second line of the address field (it gets rejected).
Read 11 tweets
Jun 18, 2021
If your app has a UITableView, you're in good company. Pretty much every app ever written has one :-)

Here are some changes to be aware of with iOS 15:
You may notice a gap between section headers. This is an example of what I saw in our @linea_app - the yellow gap is new in iOS 15.

It took me awhile to figure out where it was coming from and how to get rid of it.
@linea_app The yellow isn't a new view and it's not a part of the section header. It's actually showing the table view's backgroundColor because there's a new gap between the row cell and the header.

This is part of what makes it confusing.
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(