The AppStore is giving away free apples!
Unless you've been living under a stone the last decade, you should know by now that Apple's AppStore is a place of censorship
Join the DZone community and get the full member experience.
Join For FreeSo, you want to build an iPhone app? Great, first teach yourself some weird programming language that's completely useless outside of your iPhone. Then spend a month coding, before submitting it to the AppStore. Once you're done, there's a huge chance Apple will simply reject your app, implying all your effort has been completely wasted. Besides, even IF they accept your app, they run off with 30% of your profit. And once they've taken 30% of your profit for a couple of years, there's still nothing preventing them from throwing you out of their "little garden" the way they did with Gab and Parler ...
Am I the only one who sees the problem here ...?
Seriously, the AppStore is fundamentally problematic. There's been hundreds of lawsuits against Apple over their "walled garden" the last decade. Recently some gaming company just sued them, since Apple is running off with hundreds of millions of their profit every single year. I don't mean to be insensitive here, but "dear currently suing 'gaming company'".
Err, duuh ...?
To sum up my feelings about the AppStore I simply have to resort to an "analogy". Feel free to interpret the following image anyways you see fit ...
However, unless I had a solution to the above, I wouldn't be a very najs guy would I? Hence, I present to you; The hole in the AppStore!
It's called the "World Wide 'thing'" for a reason! Use it!
The above app was created in literally half a day. When I was done, I deployed a simple Docker image, and the app was up running some few minutes later. Compare that to the 3 months + process of trying to create the same thing using Apple's SDK and getting approval from Apple, and you should get the idea.
The app also perfectly behaves like an iPhone app, in addition to also perfectly behaving like an Android app, and a Windows app, and a Linux app, and a Mac OSX app for that matter. In fact, if your mom's refrigerator has a browser, I'm fairly confident I'd get the thing to run on that too! Below is the stuff I had to do to resize my images in Angular.
import { NgxImageCompressService } from 'ngx-image-compress';
/* ... the rest of your file ...*/
/*
* Somewhere in your component file's typescript file ...
*/
public uploadFile() {
// Asking user for a n image.
this.imageCompress.uploadFile().then(({image, orientation}) => {
// Compressing image.
this.imageCompress.compressFile(image, orientation, 25, 80).then((result: string) => {
// Uploading file to server, removing 'data:image/jpeg;base64,' before we do
const cutoff = result.indexOf(',');
const type = result.substring(0, cutoff).replace('data:image/', '').split(';')[0];
result = result.substring(cutoff + 1);
this.service.uploadFile(result, type).subscribe((uploadResult: any) => {
// Assigning model.
this.data.entity.image = uploadResult.filename;
// Signaling image has changed.
this.changed('image');
});
});
});
}
Then below is the Hyperlambda code that's running on the server as you upload your images.
.description:Upload image endpoint
.arguments
file:string
type:string
auth.ticket.verify:root, horses-admin
guid.new
strings.concat
.:/misc/horses/
convert:x:@guid.new
type:string
.:.
get-value:x:@.arguments/*/type
convert:x:@.arguments/*/file
type:from-base64
io.file.save.binary:x:@strings.concat
get-value:x:@convert
strings.concat
convert:x:@guid.new
type:string
.:.
get-value:x:@.arguments/*/type
unwrap:x:+/*/filename
return
result:success
filename:x:@strings.concat
Then finally the thing that is serving your images ...
.description:Returns the specified image to caller
.arguments
image:string
strings.concat
.:/misc/horses/
get-value:x:@.arguments/*/image
io.stream.open-file:x:@strings.concat
response.headers.add
Content-Type:application/octet-stream
Cache-Control:public, 6000
return:x:@io.stream.open-file
Now try reproducing the same thing in Apple's weird programming language, completely useless outside of the AppStore, impossible to reuse for anything not running iOS - And then do it in half a day please ... ;)
Opinions expressed by DZone contributors are their own.
Comments