HackerTrans
TopNewTrendsCommentsPastAskShowJobs

photawe

no profile record

comments

photawe
·6년 전·discuss
I've been working on a video editor (https://phot-awe.com), for more than 1.5 years.

Biggest challenge has been speed: first proof of concept was a prototype that was kinda' slow (C#/WPF/Windows). I've re-written it using the lowest level possible stuf from WPF, and that took me a looot (roughly 3-4 months, to also make it easy to extend/modify). That was an improvement of roughtly 3-4 times, but for non-trivial stuff, it was too slow (and especially saving the final video was insaaaanely slow). So, I did another rewrite in UWP, and this took another 4+ months.

Now, I'm really happy about the speed - it's 3-4 times faster than before, and at saving, it's 10-12 times faster.

In order to make it happen, I've worked insane hours (and still am) - but that's that. Right now (the following 2 months) I'm focusing on stability and some improvements. Hope to have apretty cool new feature ready in roughly 3-4 months, and we'll see.

Challenges: countless, probably I could write a book ;)

1. Parsing existing videos - in WPF that was insanely hard, and it took me a lot of time to come up with a viable solution (which when porting to UWP, I ended up throwing away)

2. Estimates - I was pretty good at estimating how long a task would take. But due to the fact that everything was new to me (basically, animating using low level APIs was close to undocumented), so pretty much everything took 4-5 times more than I expected. This was soooo exhausting and depressing, since at some point I just stopped estimating, because I knew it would take me longer.

3. Changing the UI due to user feedback - basically, I ended up redesigning 80% of the UI to make it easier to use. What I thought would take me 1 week, ended up taking me 1+ months.

4. Tackleing everything at once: trying to implement a new feature, while dealing with bugs people would find or dealing with issues that would come up when trying to implement the feature. And dealing with issues that came up from the photographers I collaborate with (those that create the app's effects/transitions).

5. Porting to a new technology (UWP/WinRT). This is something that I hope I never have to do again - I was forced to do it, because of the speed gains. I had to reimplement / retest every control I initially developed - that's one thing. The other one is dealing with the idiocracy of WinRT - which loves async stuff / and also loves limitations. Also, the UWP documentation is soooo bad compared to WPF - and there are very few resources, because most people are put off by it (not going to go into detail as to why, that's another book I could write). Not for the faint of hearted. 6. Compilation times - on the old technology (WPF), everything was insanely awesome. On UWP, compilation times are roughly 6 times slower. That is baaaaaaaaad. I'm doing all sorts of workarounds to make things faster.