Monthly Archives: June 2015

fluentReport v1.0.0 - Released

It has been a couple years since the first version of fluentReports was released.   Over that time the engine has grown and some very complex bugs appeared that were difficult to fix.

I was very proud of the work at that point; but I have finally had the time to fix the complicated remaining issue in fluentReports and I am very proud to call this version 1.0.0.

Sizing issues with headers/footers and/or too long of text being printed are all squashed!   In addition it has a ton of new features like "link", always printing group headers on new pages; "fill" on prints and tons of other little goodies throughout the code base.     In addition the engine now is fully Asynchronous so you can use Async code in your header, footer or detail callbacks and not worry about the report being corrupt.    In addition it is smart enough that it can continue to be used like it was in Synchronous  mode.    No changes to your code.  I have attempted to maintain backwards compatibility as much as possible and only a couple minor breaking changes have occurred (which some of them can even be disabled, if you don't like the new default).   Please see the changelog file for the information on any breaking changes.

I have also created a commands.md file that you can view a outline of ALL the commands and what they do, and their parameters; this should fill in the documentation gap that I never had in place before.

 

 

NativeScript v1.1.0 - Released

NativeScript v1.1.0 was just released a couple days ago.    Here is what is new and how to get all the cool new features.

Some of the changes are:

  • Exposing Application events as Real Event [example]
  • Parent is now exposed in itemLoading event
  • Repeater Component Added [more]
  • TabView.selectedIndexChanged Event added
  • Hint property for TextView
  • NavigatingTo/From, NavigatedTo/From events added to Page component
  • Search now has Hint Color
  • Dozens of Bug Fixes
  • View and GestureObserver classes has breaking changes [more]

If you are currently running version 0.9.0 or v1.0.0 then here are the steps to upgrade you to the wonderful version 1.1.0

 

Upgrading the NativeScript Tools:

First thing to do is upgrade your TNS (or NativeScript) command so go to a command prompt (if on windows it will probably need to be an Administrator command prompt) or  bash/terminal prompt.

Type "tns --version" or "nativescript --version", if you already have version 1.1.0 then you can skip this step as you already have the latest nativescript tools.

Windows (from an Administrator prompt):

npm install -g nativescript

Linux/Macintosh:
sudo npm install -g nativescript

This will update you to the latest version of the command nativescript command line.  And you should type "tns --version" after to verify it has been upgraded to v1.1.0

Upgrading the Platforms:

Next thing you will need to upgrade is your "platforms", so navigate to the root level folder where your project is; and then if you are working on a Android project type:

tns platform update android

and/or (if you are working on a ios version on a Macintosh)
tns platform update ios

 

Upgrading the Common Library:

Unfortunately The next piece is a lot more tricky as it requires a lot more steps.   Hopefully this will be fixed in v1.2.0.    But right now it is a small bit of a pain.   The easiest method is to create a new project and then copy the tns_modules out of the new project into your existing project and then delete the dummy project.      So at a command line do the following (assuming your still in your main app project folder from the steps above).    Please remember to replace <yourapp> with whatever folder name your app is in.

Windows:

cd ..
tns create testupgrade
rd /S /Q <strong>&lt;yourapp&gt;</strong>\app\tns_modules
move testupgrade\app\tns_modules &lt;<strong>yourapp</strong>&gt;\app
rd /S /Q testupgrade

Linux/Macintosh:
cd ..
tns create testupgrade
rm -rf &lt;<strong>yourapp</strong>&gt;/app/tns_modules
mv testupgrade/app/tns_modules &lt;<strong>yourapp</strong>&gt;/app
rm -rf testupgrade

 

LiveSync Update:

Last piece, If you are using my awesomely cool LiveSync code; you have one more step you need to do; unfortunately Telerik has not yet accepting my patch into the android platform.   So  I have pulled the same 1.1.0 platform source code as they released then added my patch and again compiled it for your usage (if you wish to compile it yourself; the readme file in the LiveSync project explains how.)       The pre-compiled runtimes can be pulled from http://www.master-technology.com/tns-android-1.1.0.tgz

After downloading and moving this file into your main project app directory (i.e. where the watcher.js file lives); The steps are as follows (Oh you will need to make sure to copy your androidmanifest.xml file from the platform/android folder if you have made **any** changes to it that you want to keep as this will install a new copy):

Windows:

tns platform remove android
tns platform add android --frameworkPath=.\tns-android-1.1.0.tgz
cd app
npm install nativescript-livesync@latest --save
copy /y node_modules\nativescript-livesync\support\watcher.js ..

Macintosh/Linux:
tns platform remove android
tns platform add android --frameworkPath=./tns-android-1.1.0.tgz
cd app
npm install nativescript-livesync@latest --save
cp node_modules/nativescript-livesync/support/watcher.js ..

And you will be done.  LiveSync will continue to work and you will be fully on the 1.1.0 Release!

NativeScript - Real time development on Android


Photo (CCA): https://www.flickr.com/photos/sleepyjeanie/5738474150

Now if you haven't guessed recently I've really taken to NativeScript.   It is awesome tool set for development applications for your mobile phone.

However, one of its failings compared to some of the other tools is the speed of iteration.     On my machine; when I want to test a change;  I switch to a command prompt (or hit a hotkey) which then compiles the app and deploys it.     This whole process is between 20-30 seconds each time on my beefy machine.  If I made any code mistakes; then I watch it crash on the emulator, have to fix it and then wait another 20-30 seconds while it re-compiles & deploys it again.    Another, slow issue testing area is if the screen I'm changing is a little ways into the application then I have to re-navigate back to the screen and test my changes each time I redeploy the app.    So all in all, it is a slow iteration cycle.

Well, I decided to do something about it; and so if you watch my youtube video, Real Time NativeScript Development , you will see how simply including the "nativescript-updater" the screen/code updates on the emulator INSTANTLY.    And this works for any screen I'm on, no matter how far I have navigated into the program.

In addition the watcher utility will also run any changed JS or XML through a linter before transferring it to the Emulator.  This allows me to keep the majority of my stupidity from even getting to the device in the first case which will end up in a crashed callstack.

You can still intermix the normal NativeScript deploys for any reason we want.   This project has been released at http://www.github.com/nathanaela/nativescript-livesync/ and is completely trivial to include into your project.

I'm waiting on a pull request that I added in the Android-runtime (https://github.com/NativeScript/android-runtime/pull/92) -- until it is accepted; the neat magic only partially work.