My facebook https://www.facebook.com/cerise.guo.code
I also worked with or learned SQL, WinCE, UML, OpenGL, COM, Websocket, PowerBuilder and so on.
Besides programming, I enjoy reading, handcraft, hiking and the nature landscape with my family.
C++ is a great language. You could control all detail and nothing will be hidden. Although you are in charge of each bit of memory and usage, you get the good control of the performance.
C# and Java are good tools for rapid development. User has to install VM and provide enough memory. Now MS open source the .NET framework to Android / iOS, there is bright future of C# now :)
Objective-C, en~~~ , So so, at least it can talk with C/C++ easily. Swift is making thing better & easier.
JavaScript is becoming more powerful after the nodeJS is released. AngularJS is great & smart design for architecture. But when thinking about the performance with fashion feature on general mobile devices, Native language will beat it easily.
CSS ----> it continues changing and is improved smarter and smarter. I am not designer; it really needs genius to create the simple & amazing UI.
(By the way, some images in this site may not show correctly under firefox.)
My Timeline ~~~ Yeah ~~~
First Azure Mobile service on AndoridAug.1 2015
Follow the Microsoft Azure tutorial to create my first Azure message (push notification) to Android platform.
The 2.0 example code is available at GitHub link.
Start using SQLCipherJul.6 2015
Start to design the wrapper interface for SQLCipher which is free for Xamarin enterprise license.
https://www.zetetic.net/sqlcipher/.Game engine estimationJul.4 2015
Compared 15 most popular game engines/render by function and cost. The ORGE(C++), Marmalade(C++), Anarchy(C++, died ?) and Unity3D(C#) stand out.
Good to know the customized NDK with 'full' C++ support: http://www.ogre3d.org/tikiwiki/Ogre+Android.
Finish BLE(Bluetooth Low Energy) Simulators (iOS&Android) Jun.30 2015
Finally the BLE Simulator (iOS & Android) can simulate our BLE device protocol. The same architecture is used for two platforms.
Finished my Android & iOS BLE Utility applications and the code is put at my github. Both use notification to de-couple the background BLE action and UI.
Build iOS BLE(Bluetooth Low Energy) Simulator Mar.28 2015
Designed 4-layer thread model and implemented the iOS BLE simulator. This will allow us to simulator the different BLE communication scenario for testing and demo purpose. Will create the Android BLE Simulator soon.
Building my Android BLE Utility app and will put to my github soon.
Finish reading iOS BT Programming Guide Mar.30 2015
Working on Bluetooth component now. Finished reading the apple BT Programming Guide.
Here are Apple's Core Bluetooth Programming Guide and CoreBluetooth Temperature Sensor example code.
Updated ADB Console app Mar.26 2015
To improve the performance, updated my ADB Console app with virtual listview, which used RichTextbox before.
Finished two Xamarin components Mar.23 2015
720 hours just passed so fast. I created two Xamarin components for work project, LocalSecurity and LocalStorage. I learned the PCL project architecture, Xamarin Form, Xamarin binding, Android KeyStore & SharedPreference, iOS KeyChain & NSUserDefaults, NUnit test and so on.
Here are good examples for the PCL library project organization for multi-platform.
A tricky thing found is that "double" has different range on android and iOS.
Continue on XamarinFeb.26 2015
Finished reading the first 3 chapters of the book (about 120 pages) and several simple Xamarin.Forms projects and one DependencyService project.
Will start to do real design/coding for work project tomorrow.
Here is a good official suggestion for the project organization for DependencyService project.
Setup the Xamarin for PCL projectFeb.21 2015
After 1 days fighting, my Xamarin 4.x could not open Xamarin.Forms project with PCL.
Finally installed Xamarin 5.7 trial with .Net Portable library. The following projects are built and deployed to my tablet: Examples for the book "Creating Mobile Apps with Xamarin.Forms"
In next 720 hours, I have to work harder to learn the Xamarin.Forms before the trial expired.
Build breakpad under Ubuntu v14Feb.18 2015
Install Ubuntu v14 in VirtualBox and build the Google breakpad with NDK r10d.
Amazing! the build succeeded one time and minidump_stackwalk parsed C++ line number correctly. The screenshot of parser output is at my GitHub
Fixed a compatibility issue in my application !Feb.12 2015
Finally figure out the UIImageView issue in my app. From iOS7, either UIKit classes or UIResponder classes should be called from app's main thread.
The official statement is from UIKit Framework Reference
Generic Logger class and Visitor PatternFeb.12 2015
Learned a different logger design from Class Level Generic Logger. Since it uses visitor pattern and strategy(policy) pattern, so I got chance to review these patterns from visitor pattern which is a short but very good article.
Again, design pattern is the crystallization of the wisdom of human being. If smart people can master the programming language, the design pattern needs architect.
Play with Google breakpad & coffeecatchFeb.03 2015
Try using google breakpad and coffeecatch to catch the stack backtrace, but failed finally.
Build and run them on my phone. Googe breakpad can generate the dump file, still need to build the 'dump_syms' to parse the dump file. Coffeecatch can also catch the exception signal, but the address can not be parsed by addr2line, need more time to investigate it.
The projects are at my github page : CoffeeCatch.JNI and Google Breakpad
Build libwebsocket 1.3 with cmake 2.8 Jan.31 2015
Successfully generated Visual studio solution/projects for libwebsocket 1.3 by CMake 2.8.
The CMake uses absolute path for both code and include paths which need to be modified manually after generation.
The project is at my github page : https://github.com/FredericGuo/libwebsocket
iOS7 full screen layout Jan.30 2015
Finally I made my app full screen like iOS5/6. In iOS7, to keep status bar show, it needs to manually shift the view down 20px which is the height of status bar.
The following links provide more detail : iOS7 UI Transition Guide and iOS7: Fun Times With the New Full Screen Layout!"
Dynamic Linking on iOS Jan.28 2015
dynamic library is possible and works on iOS unless you submit your app to apple. It is not a technical problem.
This page gives a good explanation with examples : http://ddeville.me/2014/04/dynamic-linking/
Conditional Compilation for iOS code Jan.28 2015
Just added conditional compilation in my project to be compatible with iOS6,iOS7 and iOS8. Many deprecated APIs and new APIs.
A good article is here : https://gist.github.com/nicklockwood/d63c69ba2f40a33d7aa4
Start of my timeline Jan.25 2015
Today I created the timeline in my website, so I could easily trace my learning steps. Excited !