Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "webview"
I work for a company that develops a variety of software solutions for companies of varying sizes. The company has three people in charge, and small teams that each worked on a certain project. 9 months ago I joined the company as a junior developer, and coincidentally, we also started working on our biggest project so far - an online platform for buying groceries from a variety of vendors/merchants and having them be delivered to your doorstep on the same day (hadn't been done to this scale in Estonia yet). One of the people from management joined the team working on that. The company that ordered this is coincidentally being run by one of the richest men in Estonia. The platform included both the actual website for customers to use, a logistics system for routing between the merchants, the warehouse, and the customers, as well as a bunch of mobile apps for the couriers, warehouse personnel, etc. It was built on Node.js with Hapi (for the backend stuff), Angular 2 (for all the UIs, including the apps which are run through a WebView wrapper), and PostgreSQL (for the database). The deadline for the MVP we (read: the management) gave them, but we finished it in about 7 months in a team of five.
The hours were insane, from 10 AM to 10 PM if lucky. When we weren't lucky (which was half of the time, if not more), we had to work until anywhere from 12 PM to 3 AM, sometimes even the whole night. The weekends weren't any better, for the majority of the time we had to put in even more extra hours on the weekends. Luckily, we were paid extra for them, but the salary was no way near fair (the majority of the team earned about 1000€/mo after taxes in a country where junior developers usually earn 1500€/month). Also because of the short deadline given to us, we skipped all the important parts like writing tests, doing CI, code reviews, feature branching/PR's, etc. I tried pushing the team and the management to at least write tests and make feature branches/PRs, but the management always told me that there wasn't enough time to coordinate and work on all that, that we'll do that after launching the MVP, etc. We basically just wrote features, tested them by hand, and pushed into the "test" branch which would later get tested and merged into master.
During development, one of the other juniors managed to write the worst kind of Angular code you could imagine - enormous amounts of duplication, no reusable components (every view contained the everything used in the view, so popups and other parts that should logically be reusable were in every view separately), fuck - even the HTML was broken (the most memorable for me were the "table > tr > div > td" ones, but that's barely scratching the surface). He left a few months into the project, and we had to build upon his shit, ever so slightly trying to fix the shit he produced. This could have definitely been avoided if we did code reviews.
A month after launching the MVP for internal testing, the guy working on the logistics system had burned out and left the company (he's earning more than twice the salary he got here, happy for him, he is a great coder and an even better team player). This could have been avoided if this project had been planned better, but I can't really blame them, since it was the first project they had at this scale (even though they had given longer deadlines for projects way smaller than this).
After we finished and launched the MVP, the second guy from management joined, because he saw we needed extra help. Again I tried to push us into investing the time to write tests for the system (because at this point we had created an unstable cluster fuck of a codebase), but again to no avail. The same "no time, just test it manually for now, we'll do that later when we have time" bullshit from management.
Now, a few weeks ago, the third guy from management joined. He saw what a disaster our whole project was. Him joining was simply a blessing from the skies. He started off by writing migrations using sequelize. I talked to him about writing tests and everything, and he actually listened. He told me that I'm gonna be the one writing them, and also talked to the rest of management about it. I was overjoyed. I could actually hear the bitterness in the voices of the rest of management when they told me how to write the tests, what to test, etc. But I didn't give a flying rat's ass, I was hapi.
I was told to start off by writing a smoke test for the whole client flow using Puppeteer. I got even happier, since I was finally able to again learn new things (this stopped at about 4 or 5 months into the project).
I'm using jest as the framework and started writing the tests in TypeScript. Later I found a library called jest-extended, but it didn't have type defs, so I decided to write them and, for the first time in my life, contribute to the open source community.20
Don't cha just love it when you download your "native" desktop application to host a meeting, only to find out its actually a wrapper around a browser?
How did I find out? Well I innocently tried to drag and drop an image to share, only to have the browser open and render that file instead of uploading it, killing the application it was running behind it, closing the meeting for everyone on it ... and not even be able to access a back button to re-open the session.
viva la hybrid!2
So this happened when i was developing the iOS app for the company I work in. I was given half boiled code written by the previous employee to work on. The app was laid around a webview. Now in iOS, there are 2 kind of webviews, the UIWebView that works on all iOS versions, and the WKWebview that works only on iOS 8+.
So, basically I rewrote the whole app with WKWebView, retargetting the app to iOS 8+.
The app is tested and launched. Everythings fine. AND NOW, he comes up to me and says, "Can we switch it back to UIWebView? We really need the app to be universally available on the app store and 6% of our customers, still use iOS7."
You know how I felt and what I had to do. Goes without saying, that the application is available on the AppStore, targetting iOS 7+.
TLDR, iOS Dev, given half boiled code with UIWebview, tells boss about WKWebview (iOS8+) and advantages. He asks me to continue UIWebView. App developed, 12 weeks. He comes up and points to problems and asks me to retarget with WKWebview. Developed and App launched.
He comes up and says, we need iOS7+, retarget the app to UIWebview. FML.7
I finaly managed to make a dark mode on slack desktop app! Still has some bugs (like scrollbar being white) but works well enough for me. If anyone is interested tell me in the comments 🙂
How i did it (Linux paths but should be the same process for Windows):
You can execute scripts in /usr/lib/slack/resources/app.asar.unpacked/src/static/index.js
Using that i figgured out that slack desktop is basically an actual webview to their website and some os hooks.
Then i just simply packaged up some custom css to be loaded with JS.
Quite simple actually.
Using this method you can create all kinds of plugins for slack, so go wild!3
Me: OK, Google.
Google: Hi, how can I help?
Me: Open example.com
Google: OK, which browser?
Me: Google Chrome.
Google: Sorry, I didn't get you.
Me: Google Chrome.
Google: Sorry, I didn't get you again. Just say the name of the app.
Me: *Looks at the list and finds Chrome (without 'Google')* Chrome
Google: *Opens Chrome*
I couldn't reproduce it as the. Latest version of Google Assistant now opens the page in a WebView.7
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.14
Lately I've noticed a lot of people complaining about webview apps (electron and so on)... While I see their arguments for resource hungry apps, slow and unreliable - I strongly think that it's just complaining for no reason....
It's slow - yes
It's stupid to make web work in native - yes
But guys, isn't it awesome that technologies allows us to do such things? Even a simple web developer can quickly prototype an application on mac/windows/linux/android/iphones - even if it's not a great one, you still don't need to learn all the corks and quacks of the languages... You just need to get it out there!
So, I'd like to say that we should actually appreciate things we have more, even if it's as stupid as emoji coding language :)
ps. I really admire the emoji language as it's amazing on the spectre of what is possible.... :D16
I studied BS Computer Science and one of our requirements is our thesis. All of the groups in our section proposed Web Based apps and got rejected because web based apps are too common. So we have no choice so all of us proposed mobile apps. Mobile Development is not in our curriculum so we have to teach ourselves during the development of our thesis.
All of the groups' dev collaborated and taught each other except one group, my group. Since I am a lazy motherfucker, I didn't taught myself how to develop a mobile app (android). So I made a web based app with responsive design, purchased my own domain, used android studio's webview and voila, a mobile app with a web based admin.
P.S. We got the best thesis award.3
My PM wants to take the current website, which really sucks on mobile (one of the worst mobile viewports I have seen) and put in an iOS/Android app.
So basically he wants an iOS/Android app which contains only 1 activity/viewcontroller which contains a webview...
Tried to talk him out of it, but I can't even get him to consider using a hybrid framework.
He doesn't appear to care very much about performance of the app neither does the PM care much about UX.
What the PM does care about is this thing called : ONE CODEBASE.
Any tips how I can try to persuade him to atleast consider a hybrid framework? Any requirements that will force the PM to abandon this stupid idea are extremly welcome!15
I fukin hate App reviews in Apple Store :/ My app, basic cordova webview and Onesignal push, was rejected again! For fifth time! Now for IPv6 in-compatibility.3
AAAAAAAARGH I FUCKING HATE FUCKING WEBVIEW. THAT MOTHRFUCKER IS SO FUCKING SLOW I COULD FUCKIKG OPEN UP CHROME AND GO TO THE FUCKING LINK IN LESS TIME THAN IT TAKES TO FUCKING LOAD. FUUUCK.2
Sooooo this is the thing.
For a stupid fucking project at work we basically have to scrum manage a bunch of individual components on a rather large web app.
We start with the html and css and js bs and we all have to work on different sections of one page at a time. Large blocks right? Ok cool.
Originally I had suggested to build everything inside individual php files and then stack them up with require(). As fucking simple as fucking that. Except that the manager does not have php on her pc. The other two developer don't either. I am the only one that fucks with php OUTSIDE our fucking servers.
Go fucking figure...the lead developer does not fuck with php outside the servers.....man
So, because i know it would be a shitstorm with something as basic as installing i dunno...fucking xampp my manager said that she needs a different solution.
Fuck it...fine...whatever. i know go. So i make a fucking server wich upon being fired you can just code the templates and paste them where they need to go. Docs and everything..a sane folder structure and everything and a fucking pipleline for the assets and everything. I would have thought that shit was good enough but I even added a cmd tool that merges all the fucking html files together into one html file with all the shit included.
All in Golang. It works, its fast and i can just give them the fucking folder with the exe and it will work.
I dunno if this was the best way to do it. But it took me maybe 20 mins to do it and it works.
I would have expected our manager to be impressed but she legit did not gave two fucking shits about the fact that one of her developers is able to create this mini server for static sites shitstain project in 20 minutes.
Man I don't want praise. She thinks that jquery is the best thing in the world so I don't expect much. But shit man.......a better reaction would have been better. She basically went meh ok as long as it works.
I also showed them a demo of a flutter project to replace the shitty ass webview filled school app that they have for android and ios. Shit is native and it looks beautiful. Ask me what she said.
Go on, fucking ask me.
She said tha if it would take me much time to continue on that the she would rather leave it to the third party vendor that currently makes the app.
I told her that such shitty app costs the school 40 fucking thousand dollars a year that I could do in a fucking month, which would also be better since it would raise the salaries of me and the other 2 developers and will more importantly make us more valuable to the school.
Said that she would think about it because we have a lot of projects.
When someone fucks with my ability to make more money. I hate it fam. And i fucking despise being limited by other people.
Fuck this week.
I am never gonna grow in here. Ever. But it pays the bills so fuck it.6
WebView is the worst idea ever.
make it native, bitch.
Look at React Native, they're doing it.3
I've been working on this personal project, it has a, for lack of a better word, "interesting" work flow. I'm trying to make a program similar to Netflix, here's the way it works.
I have an html page with a video, and a black background, I use the webview plugin for fusion, which acts as a mini web browser, it's programmed to load the test.html file, which the test.html file than loads the video, then I build a gui connected to it in different frames. It's odd, yes, but it does the job done.
Getting a file input to work in an Android webview was an unnecessarily complicated process.
damn sorry devs , i know you ppl are here for relaxation , but please help me out.
i am creating a browser and wanna have an edittext which works something like this :
>>user enters 'fb' , there should be a google search for fb(i.e load the string "https://www.google.com/search?q=fb")
>> user enters fb.com , webview should open it directly (i.e load the string "https://www.fb.com" )
>> some nerdy user enters http://www.fb.com or https://www.fb.com , it should load that
I know the function to make it load, what i don't know is how to modify that string to show such behaviors .
The webview is dumb enough to not behave like tht by default. although it feels good having such a raw and tool in hand, but hell, its a fucking google's webview! , why can't they just throw in some built in ways to show their search results by default when user enters a malformed url ?? that would be a great source of branding --__--7
Current fix for uploading a file to an android webview, start in debug mode start file chooser, go get coffee, return step through and voila!
now to make it work with tea too..
So for my work i need to build an app (preferably react native) which runs completely inside a webview. Is there any sane way to get the Webview to display a simple Web App made with standard Js? Im losing my mind over it6
App displays a message if user has a lolipop device and system webview version is either old or not installed. As a small hack if version is less than string "70" , I display the message.
I am totally not proud of this.1
I am considering learning Nativescript. Is it any good? I like that it is mostly native and not just a WebView.3
Any good cross platform desktop UI toolkits/frameworks? Planning to build an app for linux/mac/win with my core logic being in golang. Anyway golang doesn’t seems to support any good options for interfacing with native systems, webview is enough for my case, but it also needs to be able to listen for keyboard and then perform some basic native functions (copy, paste...), which webview is not able to do.
So I thinking to have golang + webview and then use some light toolkit to interface with cross platforms native functionality (could also be in other language). Any suggestions?
Disclaimer: electron and other chrome based options are not considerable.8