About me
Hello all, my name is Nikola Miljkovic, I am 19 years old student from Serbia. Currently I am first year student in University of Belgrade, School of Electrical Engineering, working towards Software Engineering degree. I write to express my interest in wxWidgets project, as I would love to be part of it during and after Google Summer of Code.
Project background
As we know smartphones and tablets are one of most important fields of computers today, as that they need to have as much libraries and choices as actual desktops them self's. I am personally interested in porting wxWidgets to Android OS. It should open many new possibilities to application developers, while allowing UI to be programmed at native level more easily it will also bring new complexity to applications making them competitive at market.
My programming background
I started learning C++ 4 years ago and since then used wxWidgets on few occasions, I found it easy to understand and combined with boost it brought whole new taste to C++, a language that some already call "Not good for app development" which I don’t agree with, and wxWidgets project is one of many counters to that statement. My experience with Android was mostly in Java, however I did explore ndk and since then in last few months planned to write some code in it as I am big fan of mid level programming.
What is this project to me
This project would allow me to learn more graphics development, optimization hobbits on portable devices and improve my low and mid level programming. However this project would also be most challenging and serious in my life, but I am ambitious and I believe I can give good, clean and optimized base for wxWidgets on Android.
My approach
Implementing a good base should be highest priority, so all low level classes should appear here as similar to other wxWidgets ports as possible, considering this is done for smaller screen and touch input. Optimizing basic classes for Android and touch should be next, there is battery life to consider, but also different android screens and processors. I personally have access to 3 phones 2 with ARM and single one with Intel Atom x32. After polishing and testing base, I will begin implementation of higher level features, and I also wish to implement good gesture support.
This project is huge, but I am sure I can make it in
next 5 months, if you accept me, I will start working as soon possible.
During next 5 months I will have a lot of time to commit to this
project, however at end of April and start of June I have exam weeks, during that time I will have either reduced or no time for project.
I have used SVN before and I have contributed to open source projects before, such as SunScripts, ArcEmu, KDE and ArcScript all written in C++.
Project realization
Realizing wxWidgets for android should be done in rather simple bot powerful way. Using JNI(Java Native Interface) calls, we would let operating system draw components that look consistent on android. That would allow us to keep up to date style always and let OS handle possible device differences.
For testing and demonstrational purposes i would make "Skeleton application" similar this one. Implementation would be done in three phases. First phase would consist of porting base classes such as wxObject, wxTrackable and wxTopLevelWindow, adding event loop and making first JNI wrappers for basic visual components.
Example:
Android | wxWidget |
ActionBar | wxToolBar |
EditText | wxTextCtrl |
SearchView | wxSearchCtrl |
In second phase I would like to address limitations that Android UI could have. Some controls might not exist in current implementation and such it would should be researched what is best way to bring them to Android.
wxWidget |
wxMenuBar |
wxRibbonPanel |
Also expanding existing codebase with non UI classes such as wxTCPConnection, wxRegEx and more events.
These two phases should all be done and possible during time of GSoC 2014 providing great base for wxAndroid! Yes I gave it a name :)(Its really creative too).
Third phase is hardest, biggest and most important one. Continuing support and development of wxAndroid, writing documentation, sharing tutorials with community, reporting and fixing bugs while adding all other missing features.
My commitment to this project will be following:
Begin date | End date | Avarge time commited |
3rd May | 1st June | 25 hours/week |
2nd June | 13th June | 10 hours/week(Exam week) |
13th June | End of GSoC | 40 hours/week |
End of GSoC | GSoC 2015 | As much as I can |
In case that we cannot make exact technical replica of Event loop , we can simulate it.
Yes, it is possible activity can take motion event and unpack it if clicked view doesn't have specific EventListener.
Just committed change that shows this :)
--
To unsubscribe, send email to wx-dev+un...@googlegroups.com
or visit http://groups.google.com/group/wx-dev
I tested it before commiting, it definetly did work. Could you share crashdump?
Thanks in advice
--
are onDraw(), onMesure(), onSizeChanged().
NM> You are not right there, activity and event listeners are not related, my last commits showcase good way to handle NM> this problem.
NM> I am still not hundred percent sure on how will we handle this on java side, on our C++ side it is actually pretty straight forward.I did take a look at your commit and saw that you're essentially creating a intermediate Java class to implement the functionality of the event handler.The project in its current state doesn't support multiple Activities since there is no way to add or handle a new activity purely by native code.It can only be done if the code for the new activity is written manually in Java.The only foreseeable way to remedy this would be to create a wxAndroid Project Creation Wizard(even a simple console application should do) application of sorts which would automate this with some user-inputs regarding the Activity name ,links to the native code and so on,which you earlier argued was unnecessary and complicated.
are onDraw(), onMesure(), onSizeChanged().
I was aware of these events.I was just pointing out one of the ways in which Android handles resizing.
I have recently improved whole repository. Traditional building is mostly supported now.
If any mentor could respond to my recent commits,
way of compiling