Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "storyboards"
-
Its that time of the morning again where I get nothing done and moan about the past ... thats right its practiseSafeHex's most incompetent co-worker!!!
Today I'd like to tell you the story of "i". Interesting about "I" is that he was actually a colleague of yesterdays nominee "G" (and was present at the "java interface" video call, and agreed with G!): https://devrant.com/rants/1152317/...
"I" was the spearhead of a project to end all projects in that company. It was suppose to be a cross-platform thing but ended up only working for iOS. It was actually quite similar to this: https://jasonette.com/ (so similar i'm convinced G / I were part of this but I can't find their github ID's in it).
To briefly explain the above + what they built ... this is the worst piece of shit you can imagine ... and thats a pretty strong statement looking back at the rest of this series so far!
"I" thought this would solve all of our problems of having to build similar-ish apps for multiple customers by letting us re-use more code / UI across apps. His main solution, was every developers favourite part of writing code. I mean how often do you sit back and say:
"God damn I wish more of this development revolved around passing strings back and forth. Screw autocomplete, enums and typed classes / variables, I want more code / variables inside strings in this library!"
Yes thats right, the main part of this bullshittery was putting your entire app, into JSON, into a string and downloading it over http ... what could possibly go wrong!
Some of my issues were:
- Everything was a string, meaning we had no autocomplete. Every type and property had to be remembered and spelled perfectly.
- Everything was a string so we had no way to cmd + click / ctrl + click something to see somethings definition.
- Everything was a string so any business logic methods had to be remembered, all possible overloaded versions, no hints at param types no nothing.
- There was no specific tooling for any of this, it was literally open up xcode, create a json file and start writing strings.
- We couldn't use any of the native UI builders ... cause strings!
- We couldn't use any of the native UI layout constructs and we had to use these god awful custom layout managers, with a weird CSS feel to them.
What angered me a lot was their insistence that "You can download a new app over http and it will update instantly" ... except you can't because you can't download new business logic only UI. So its a new app, but must do 100% exactly the same thing as before.
His other achievements include:
- Deciding he didn't like apple's viewController and navigationBar classes and built his own, which was great when iOS 7 was released (changed the UI to allow drawing under the status bar) and we had no access to any of apples new code or methods, meaning everything had to be re-built from scratch.
- On my first week, my manager noticed he fucked up the login error handling on the app I was taking over. He noticed this as I was about to leave for the evening. I stayed so we could call him (he was in an earlier timezone). Rather than deal with his fucked up, he convinced the manager it would be a "great learning experience" for me to do it ... and stay in late ... while he goes home early.
- He once argued with me in front of the CEO, that his frankenstein cross-platform stuff was the right choice and that my way of using apples storyboards (and well thought out code) wasn't appropriate. So I challenged him to prove it, we got 2 clients who needed similar apps, we each did it our own way. He went 8 man weeks over, I came in 2 days under and his got slated in the app store for poor performance / issues. #result.
But rather than let it die he practically sucked off the CEO to let him improve the cross platform tooling instead.
... in that office you couldn't swing a cat without hitting a retard.
Having had to spend a lot more time working with him and more closely than most of the other nominees, at a minimum "I" is on the top of my list for needing a good punch in the face. Not for being an idiot (which he is), not for ruining so much (which he did), but for just being such an arrogant bastard about it all, despite constant failure.
Will "I" make it to most incompetent? Theres some pretty stiff competition so far
Tune in later for more practiceSafeHex's most incompetent co-worker!!!6 -
I was given 8 hours to build an entire website from scratch. No storyboards. No content to start with. Just "I have a meeting with the CEO tomorrow. Make sure we have a new website to show him"4
-
Today I learned that mobile development is a lot more difficult than web development and I’m never going to scoff at a badly designed mobile app ever again.5
-
Worked in a company that had a lot of problems reusing code / UI across many similar iOS apps. Current devs were basically trying to build this: https://jasonette.com/ (after other multiple failed ideas).
I argued for weeks after joining that this is way too much, with better use of storyboards and autolayout we can fix the majority of our problems. They did everything short of laughing.
Few months later managers in my office were tired of them so gave me a chance, I build an app my way, the most senior of them build an app their way.
Long story short, my app was a bit more complex, both had the same amount of time. I finished 2 days before the deadline, he went 8 weeks over.
Never felt more vindicated in my life. Mysteriously he and another dev randomly "decided to leave" 2 - 3 weeks later. -
Area of focus: Native iOS dev
Why: Spent years trying hybrid tools, dealing with the most ridiculous errors, bugs and issues you can begin to comprehend and then ... something magical happened. I got a book on Objective-c, learned a little, tried a simple app ... and it worked ... like properly worked, and on all the devices without taking half the RAM.
I'll say that again as I don't think it landed. In Objective-c, I got no issues where only the CEO's phone + OS version meant I couldn't load a map and a pin (looking at you titanium!!!)
In Objective-c, I wasn't promised storyboards and autolayout, only to find out they are completely different, and may god help you trying to google the issues, as the only ones to show up would be the native tools (looking at you Xamarin)
In Objective-c, my app doesn't instantly consume 125mb of RAM to load a fucking webview (looking at you ... well nearly every other hybrid tool)
... it just works. Then Swift came along and things only got better.13 -
Xcode storyboard sucks!. At least it could've had a code version of the storyboards (like android XML layouts) so that at least you could properly copy paste a layout from somewhere. Autolayouts and constraints are so flipping confusing that I almost always end up doing all the layouts in the code itself.2
-
I want to share this story and need your advise.
When I was teaching exisiting team members about git and new iOS development ecosystem. I was changing the whole ios development practices and processes that time. One of my teammates wasn’t listening, when implementing the new ios development practices and standards, he actually screwed all of the projects.
He’s been with us for 2 years and he even don’t know how to use git. He forcefully push his changes without pulling our changes first. I was so angry that I reported him to my manager to address this matter. And then my manager told me, he is aware of my teammate’s incapabilities. He said he was planning to terminate him, and he is been thinking about it for 3 months.
When the judgement day came, we were in the meeting room. My manager told us the bad news that one of us will be terminated. During the meeting he said, “I am sorry, {my teammate’s name}. You will be out of the team due to {reason of termination}. {my name} reported to me that you dont meet the deadline, you are always late with 2 weekly sprint to your tickets”. As my manager keeps talking, my teammate look at me with his eyes so angry together with his girlfriend (her girlfriend is part of mobile team, but she is focused on UI/UX).
After my manager stops talking, her girlfriend started crying and said I was the one who should be terminated. Her reason was that I keep on giving difficult tasks to his boyfriend, that’s why he is always late to report. In my defense, those tasks are not difficult, most of his tasks is just changing the color of labels, changing layouts. If you are an iOS developer you know how easy it is to change font colors, changing the layouts using storyboards. Her girlfriend keeps on rambling that I should be the one needs to be terminated.
After few days, he left the team and surprisingly his girlfriend stayed and we never talk to each other except anything about work.
I am really pissed guys. Now my teammates think I am the bad guy asking my manager to terminate anyone in the team if I feel to. I feel very very not good in my work now. I can’t function what I used to. The termination of my teammate was already planned why am I should take the blame?16 -
Xcode storyboards
I can't do it justice by explaining how many times having the entire UI flow in one file has helped me.
Even for unexpected stuff, like an Android dev joining the team and needing to know the workflow of login / registration -> print screen the storyboard.
Manager asking for all the different possible paths through the app -> print screen the storyboard(s).
And then live rendering of custom components to be able to see them while playing with alignments.
While it has its bugs, and could have a few more features, it's too useful to ignore.
I know many iOS devs don't like it, and that's fine because I don't like them either and I don't hire them ;-)1 -
The time myself and a colleague got the chance to do a POC to port our iOS app into Swift using storyboards and more modern iOS features. We were able to replicate a significant portion of the existing app in a couple of days. Just wish we had gotten the chance to spend more time on it. We are currently still stuck using crapjective-c
-
I finally learnt how to use Xcode storyboards and constraints properly. They’re pretty awesome and no longer annoying.2
-
advice && !rant
I'd love some advice from you iOS devs on devRant:
- Is it a solid career choice for a new grad? Does it limit your skillset early on?
- How open/active is the ecosystem and the open source scene?
- Storyboards? Yay or nay?
- What do you like the most about your job?
- What do you dislike the most about your job?
Thanks guys :)4 -
There are few things I hate more in life than interacting with storyboards.
It's like Apple held on a contest to see what the least user friendly file someone could invent was. Not to mention the editor only existing in Xcode - the VS editor has been fucked since early this year.1 -
iOS Storyboards in Xcode feels like Dreamveawer. This Autolayout and Safe Area shit doesn't make any sense. As for Xcode itself it's a monstrosity, looking forward to purging that and reclaim my disk space.
-
Seriously. Is there ANY way to work with my colleagues on the same xcode project, or is it fucked, and have to manually copy-paste storyboards, and .swift files? I found that it’s the easiest way so far. Any recommendations?6