Just a quick note, to let you see with your own eyes the nightmare what i was facing with. Using firebase node package, which is an official Google one, not an MIT, just to be able to send some notification through service worker, it ate up 500KB from my 1,58MB build. I thought the minifying is proportionate. 1MB also big as a js, but i have made major steps toward eliminating the ionic. The css of mine is around 500KB, which is just full with ionic stuff.
As the angular itself has lots of comment in the code and i have made a source-mapper report which only works on unminimified versions with mapping files, i have a guess that ionic eats up a very serious chunk of it, what i will recreate only within 50KB with less css (i definitely not recreating components, i’m making some very flexible one, for example the popup in my understanding is a tab which has a position). I will share some of the stuff at facs repository, when i’m finishing (it won’t be production ready - i haven’t time for documentation, but it will be properly tested, even if the orientation changed - even the ionic popup is not orientation change resistant), very likely within 2-3 weeks, as i have already created the menu, the tab has more features already, the virtual scroll.
I’m also at the middle of popup, and the range extension of toggle. Badge is the easiest one, probably 30 minutes work max. There is some fab button, but i already able to position some of my button, which are draggable. (working on mobile and on laptop also)
I also recommend you guys to look at the latest ionic blank project (which isempty and it cost 500KB - minified), as the angular team clearly said to me looking at my report, that the config messed up it shouldn’t contain compiler at all. generating with angular cli it definitely does not contain that kind of stuff. They said something about platform-dynamic which shouldn’t be used and AOT.
Because i don’t need to accommodate to ionic, i’m expecting that my project will be slashed by 2/3 after the 2-3 weeks period. Also i need to admit, that my real criticism in the angular world, that it made my work more complex, than it should have been. Now i feel i regained my control back.
I also eliminated the EventEmitter bubbling, i have created an UI channel system, where components just subscribing, so you can broadcast or directly send messages to them (messages are sync at the moment, but it’s very fast, not really blocking anything on very huge element, as i’m not iterating on arrays, just using the associative behaviours, and not using maps also, which is special only for ts). It’s already a very big breakthrough, as now i’m able to fix my code very easily, i have a feeling that it’s maintainable, instead of digging into it for hours.
I decided also, that in the next phase of my project, i probably create 2-3 native elements, instead of using cordova. I picked up the swift stuff 3-4 month ago, very likely i can use some official Google library even if i haven’t any deep knowledge on swift /objective c. (it was inspirational what a language can do when it’s really the basic, like swift, which is a cleaner version of ansi c++ - i liked the operator overriding stuff,which i remember i personally used 17 years before at university - i have seen a project in javascript to do that but it wasn’t real, just a hack, and had got limitation)