Applications – Victor Laskin's Blog http://vitiy.info Programming, architecture and design (С++, QT, .Net/WPF, Android, iOS, NoSQL, distributed systems, mobile development, image processing, etc...) Fri, 03 Oct 2014 06:27:19 +0000 en-US hourly 1 https://wordpress.org/?v=5.4.2 Easy way to auto upload modifications to server under osX (live development) http://vitiy.info/easy-way-to-auto-upload-modifications-live-development/ http://vitiy.info/easy-way-to-auto-upload-modifications-live-development/#respond Thu, 02 Oct 2014 19:57:54 +0000 http://vitiy.info/?p=340 Here is very simple way to setup immediate automatic upload of source code modifications to server via ssh. This gives you ability to perform live development and testing of your solutions. There are a lot of utilities to achieve this and you even can write some not-so-comlicated script doing recurrent compare of file modification times yourself – but there is very easy solution from Facebook, called watchman. To install it under OsX use Brew

brew install watchman

Watchman will call upload script for each modified file – lets write this script and call it uploadauto.sh. It will be really short!

MYSERVER=11.22.33.44
scp $1 $MYSERVER:~/folder/on/server/$1

I assume you have ssh keys on server and don’t do manual password entry. Put this script into the folder you want to synchronise. And finally we need to say to watchman to look over this folder and call our script when something changes:

watchman watch /Users/me/project1
watchman -- trigger /Users/me/project1 upload '*.*' -- ./uploadauto.sh

Replace here /Users/me/project1 with your folder name. upload is the name of the trigger. ‘*.*’ is the mask for files to be monitored. More information about trigger syntax can be found here.

And thats all!

To stop the trigger you can use: watchman triggerdel /path/to/dir triggername. To stop watching over folder: watchman watchdel /path/to/dir

Also you can add to script some actions to notify the server to rebuild the service on server side or perform some post processing there. So you can customise the process as you want.

This solution should also work under Linux systems with inotify.

ps. Dont use this for deployment – only for testing and developing.  For production i recommend use version control repositories from your own distribution server.

pss. This tool was initially developed to reduce compilation time so you can setup it to compile each file upon modification. I guess you can imagine other applications.

 

]]>
http://vitiy.info/easy-way-to-auto-upload-modifications-live-development/feed/ 0
Small guide: how to support immersive mode under Android 4.4+ http://vitiy.info/small-guide-how-to-support-immersive-mode-under-android-4-4/ http://vitiy.info/small-guide-how-to-support-immersive-mode-under-android-4-4/#comments Thu, 19 Jun 2014 08:38:14 +0000 http://vitiy.info/?p=284 In Android 4.4 version we have new Immersive mode which allows to make system bars translucent and extend application area to fit all screen. This looks great as it gives more space to application in terms of usability and it creates more stylish look if application design is done accordingly.

Immersive mode for TripBudget

I added support of immersive mode to TripBudget. And there were some unexpected troubles on the way so i decided to write some kind of guide here.

Note: I talk here about immersive mode where bottom navigation bar is hidden – using SYSTEM_UI_FLAG_IMMERSIVE_STICKY flag. This guide is aimed to gather and solve all problems which prevent sticky mode to work properly.

First we need to check if device supports immersive mode

public boolean areTranslucentBarsAvailable()
{
  try {
	int id = context.getResources().getIdentifier("config_enableTranslucentDecor", "bool", "android");
	if (id == 0) {
	        // not on KitKat
		return false;
	} else {
	    boolean enabled = context.getResources().getBoolean(id);
	    // enabled = are translucent bars supported on this device
	    return enabled;
	}
  } catch (Exception e) { return false; }
}

There are several approaches how to enable the mode itself – i like programmatic way without any xml scheme modifications. We need just set some properties of window to enable translucent system bars (status bar and bottom navigation bar).

Window w = activity.getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
w.setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

And than we setup View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY flag. This will hide ugly navigation bar on devices with no hardware buttons (like Nexus 4).

Window w = activity.getWindow();
w.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

In perfect world that would be enough, but the main problem raises when we need to keep immersive mode during application life cycle. Solution suggested by Google is pretty simple – you just handle onSystemUiVisibilityChange / onWindowFocusChanged events. Like this:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
}

But there are still some problems/bugs to solve:

  • Some versions of 4.4 breaks immersive mode when user pushes volume buttons
  • Sometimes onSystemUiVisibilityChange is not called at all!
  • When you switch between apps Immersive mode can be broken when is used with sticky mode (Lower navigation bar remains unhidden)
  • When you push back button on nav bar it becomes black and stays that way!

When we set mode for the first time we set some handlers:

final View decorView = w.getDecorView();
decorView.setOnSystemUiVisibilityChangeListener (new View.OnSystemUiVisibilityChangeListener() {
    @Override
    public void onSystemUiVisibilityChange(int visibility) {
        restoreTransparentBars();
    }
});
	            
decorView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        restoreTransparentBars();					
    }
});

Also we set the some refreshers at OnResume and OnWindowFocusChanged. And at onKeyDown event also!

As was proposed here for solution of volume up/down problem we handle onKeyDown event specific way. Not only we try to restore immersive mode instantly when event is fired but use delayed handler:

private Handler mRestoreImmersiveModeHandler = new Handler();
private Runnable restoreImmersiveModeRunnable = new Runnable()
{
    public void run() 
    {
    	restoreTransparentBars();	    	
    }
};
	
public void restoreTranslucentBarsDelayed()
{
	// we restore it now and after 500 ms!
	if (isApplicationInImmersiveMode) {
		restoreTransparentBars();
		mRestoreImmersiveModeHandler.postDelayed(restoreImmersiveModeRunnable, 500);
	}
}

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
    if(keyCode == KeyEvent.KEYCODE_BACK ||keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP)
    {
        restoreTranslucentBarsDelayed;
    }

    return super.onKeyDown(keyCode, event);
}

And the last part of tricky restore code – my function for restoring not just applies sticky mode but it clears it first. This solves problems when user switches between apps (checked on Nexus 4).

@TargetApi(19)
public void restoreTransparentBars()
{
	if (isApplicationInImmersiveMode)
		try {
			Window w = activity.getWindow();
			w.getDecorView().setSystemUiVisibility(
						View.SYSTEM_UI_FLAG_LAYOUT_STABLE
						| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
						| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
						);
				
			w.getDecorView().setSystemUiVisibility(
						View.SYSTEM_UI_FLAG_LAYOUT_STABLE
						| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
						| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
						| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
				
		} catch (Exception e) {}
}

In my implementation handlers at resume and focus events call restoreTranslucentBarsDelayed();

Last concern – your app should be aware of transparent status bar. To get the height of status bar i use this code:

// Get the height of status bar
return context.getResources().getDimensionPixelSize(context.getResources().getIdentifier("status_bar_height", "dimen", "android"));

Enjoy using immersive mode 🙂

May be not all problems are yet covered in this small guide – so feel free to describe them and add your solutions in comments.

]]>
http://vitiy.info/small-guide-how-to-support-immersive-mode-under-android-4-4/feed/ 12
[Mobile] native applications as future internet format http://vitiy.info/mobile-native-applications-as-future-internet-format/ http://vitiy.info/mobile-native-applications-as-future-internet-format/#respond Tue, 03 Jun 2014 10:21:38 +0000 http://vitiy.info/?p=270 Web sites go to native apps

Here are some thoughts on future shift from old html web sites to new native application format, which we are experiencing at mobile segment right now. 

Old approach to global web was simple – the bunch of static pages with links between them. It seemed at that ancient times that everything can be filled in that concept. But when site owners started to give users a lot of functionality that foundation began to shake. HTML was designed to write the books but users now want complex services. Nowadays we see dynamic pages everywhere with lots of AJAX, JQuery, etc. Single-page web interfaces is now wide spread common practice. In truth it is an effort to create the application inside the web page using outdated methods and instruments.

And here comes mobile age! Mobile devices exposed new problems of html web-format – complex pages are too heavy for mobile, interfaces are not fast enough, interaction is limited. Facebook tried to create their first mobile client as HTML5 – but later Zuckerberg said it was a mistake. So they switched to native applications for iOS and Android. And it happened not because HTML5 was not ready at that time, imho. I think it will never be ready as true cross-platform development solution for complex apps.

At mobile field we experience the switch from web-sites to native applications more clearly. What the consumer wants now is not just mobile version of site, but true mobile application (people don’t really surf on smartphones).

Mobile apps dominate

In 2014 only 14% of user time on mobile devices is spent in the web browser (source) and this percentage is reduced every year

At desktop segment the switch is not so obvious but there are some movements here too. For example, i have Evernote as MacOs application, where i could use it as a site instead. And i imagine almost every serious site would benefit from conversion to native app form.

So what the problem? There are several main factors which postpone the shift:

The main problem is high development cost. There are no true cross-platfrom development solutions for the most platforms and you must code for every platform separately. And good desktop/mobile developers are not cheap. I work in that direction attempting to create some framework that has ability to create apps for mobile and desktop systems in one shot. I will write separately about it when at least one solid product will be available on market with support of wide range of systems. Im sure there is some work in that direction not only on my part.

The second missing link which separates now web-pages from the apps is the lack of content-based search inside the applications. Index robots now can’t scan mobile apps and you can’t see the results in Google search. But that will change soon! Google made first move in right direction and some parts of Android apps can be indexed by their search machine if app developer provided certain list of links inside the app. Here is more information about it – App Indexing. I did not test it yet – but it looks promising and i will definitely try it in action.

The last step is the instant installation of new apps. At the moment we used to see the apps as second step: we have the couples – the site and the mobile client app for that site. Common use case is that user is already aware of what he want to install and so he can endure some installation waiting. But if we consider the app as full replacement of site, the installation process should be reduced to almost nothing. I think its not so serious problem as a production cost. As bandwidth goes up installation time will be reduced and I’m sure platforms will come up with some fast installation solution. Application managers should handle it on modern mobile platforms like iOS, Android, etc. As for desktops – Apple has App Store and there were some Click-to-install tries from Microsoft for their .Net apps.

The last concern is the quality of apps. We have a lot of crappy sites all over the web and user don’t want to install such ‘crappy’ apps into the system. Or at least we want to have strong sandboxing and easy way to clean up the mess. Apple has complicated approval policy to prevent such bad quality apps from their market. Its good for clients in some way but its nightmare for devs. In any case this is some problem to solve on the way to new ‘app-sites’ world.

In any way you can expect to see more and more apps in near future. The apps which will take the place of web sites.

]]>
http://vitiy.info/mobile-native-applications-as-future-internet-format/feed/ 0
TripBudget – stylish budget calculator/logger for trips – BETA Android release http://vitiy.info/tripbudget-fast-budget-calculator-logger-for-trips-android/ http://vitiy.info/tripbudget-fast-budget-calculator-logger-for-trips-android/#comments Fri, 31 Jan 2014 19:07:48 +0000 http://vitiy.info/?p=213 TripBudget

My new tool at android play market – you can find it here. This is stylish planner/tracker for your trip’s budgets – planning and logging as one fast and fancy instrument.

More information and screens can be found below…

 

As this is beta version – the following details were modified from version 1.0 and will be changed in future to reflect recent updates.  

TripBudget

Typical workflow is the following – you create new trip and add planned expenses (which are divided by simple categories and are very easy to add). You can create several versions of the same trip and compare final estimated values. After that you switch from plan mode into ‘spending’ mode and log actual expenses. These modes are highlighted by different colors (orange for plans and blue for real expenses) to make it easy to distinguish from each other.

TripBudget - expense entry

When you enter price you can also provide text comment, multiplicator, tax/discount and specify that expense is shared between several people. This data can be modified later in the list of expenses.

In main settings you can add the list of money sources and track their balance. Such sources also can have values of another currency. When you enter tracked expense the value will be automatically subtracted from selected source.

The app uses gps sensor to log expenses locations. This gives you ability to plot tracked points on the map and find the places you liked later. Also you have ability to make photos and attach them to expenses (such as receipts and so on).

You have a lot of view modes for the lists of expenses. Two differed styles for the lists, several types of plots and special map view. The list can be filtered by main category sections, users, money sources. Also there are grouping options – you can group data by days or categories. See more screens below at updates section.

TripBudget expenses listTripbudget bar plot

The app automatically converts expense values into base currency using public rates from open sources (like European Central Bank, etc) which are updated every day (internet connection is required). You can also set your fixed currency rates for each trip budget.

TripBudget 1.010 Theme selection

As for design – i tried to make it as modern looking as possible (while maintaining the best usability). There is support for the tablets – special horizontal layout when upper panel shifts to left side to get better scrolling area. Note that design is targeted for retina-like devices as it has thin fonts.

But also i added a bit of customization. At the moment you can select one of high res backgrounds (travel related). The image has slight movement as well as minor parallax effect.

Incoming updates will also provide cloud synchronisation of trips and expenses.

You can switch between interface languages at real time. At the moment supported languages are: English, Russian, Español, French, Dutch, Italian. If you found some mistakes in translation or want to help with translation to your language – go to the end of this document – there is information about crowd translation there.

Application is powered by my cross-platform engine – so iOS release is coming soon enough (as soon as beta ends).

 

THE UPDATES:

v1.007

The count of supported currencies was greatly increased (and there are several sources now). You can now enter custom currency exchange rates for each trip.

TripBudget currency list

The currency selectors were considerably changed – now its alphabetic list and the most used currencies will go up to the top of the list for easy usage.

App now uses standard android keyboard (the ‘custom’ keyboard was there as part of engine – now it should support standard android keyboard).

Also you can delete old trips now (long press on trip list to see delete dialog).

TripBudget delete trip dialog

v1.010

For better usability at horizontal layout the design has been refactored. When your device is landscape oriented the upper bar moves to left side to make the scrollable area fit all height of the screen. So the expense entry keyboard is supposed to fit without any scrolling.

TripBudget 1.010 horizontal price entry

The settings now have new ‘suggestions’ section from which you can go to the forums and write your ideas. Big thanks for all who will do it.

v1.012

This version introduces two major improvements – multiple trip participants and money sources.

Money sources contain such types as debit cards, credit cards and cash. When you log expense in ‘real’ spending mode the amount will be converted into currency of source automatically and will be subtracted from selected source balance. This will help to track your estimate sources during your journey.

TripBudget money sources

Each trip now has additional section in options where you can add the participants to the list.

TripBudget participants select

When you entering expense you can select who was participating in each spending action. Its also possible to set for who you have to pay if you have to pay not only for yourself. For example, if you are travelling as couple with pair of your friends, you still have to pay for your companion only – which makes 50% of 4 ppl expense and this is possible to track easily now. You also can select money source as DEBT from another participant (the list to track your debts will be added as well).

TripBudget - expenses grouped by users

The list of expenses was improved to support new expense parameters – you can see expenses grouped by participants (to see overall spent amount and total debts) and also check impact on your money source in corresponding section. Clicking on each source or participant will provide the list of connected expenses.

v1.013

New version adds ability to add custom expense categories. You can find new configurable list inside application settings. There are large set of possible icons, but if you think there is something missing – feel free to write below in comments.

There is also new ability to hide selected categories from front panel.

v1.014

+ Ability to attach photos to expenses
+ Grouping by days and categories in expense lists
+ Two types of time-based graphs for expenses
+ Ability to change date of expense

1.015

tripbudgetimmmode

+ support of immersive mode under Android 4.4 with translucent menus
+ new functions for money sources (add balance, delete)

1.016

+ New languages: español, french and dutch
+ Ability to enter fraction of expense value
+ Fix for crash while setting currency rates
+ Application now has default cache for currency rates
+ Clicking on currency at main tabs opens currency options
+ Additional exit button under Immersive mode
+ Modification of tabs for better usability

1.018

+ Italian language

1.019

+ New design and functions of expense view
+ Ability to view expense on the map
+ Ability to delete trip participants
+ Main sections are automatically reordered by usage frequency
+ Fixes for italian localization
+ Minor stability fixes

1.020

TripBudget map view2014-09-04 12.18.04

+ New view mode for expenses list – view expenses on map. We are using Nokia maps here.
+ Ability to modify category of expense.
+ Click on maps will open system map or navigator. So now you can build routes to tracked locations using your favourite gps-navigator in just couple of clicks.
+ Optimizations for large lists of expenses should really improve UI speed on not-so-fast devices.

INCOMING FEATURES

Here is small preview of what coming inside next updates.

– Cloud synchronisation

– Export of trip plan / log

– Additional trip options

– Additional statistics

– New tools for sharing with friends

INSTALL

Get it on google play

ADDITION

TripBudget was featured by XDA – http://www.xda-developers.com/android/keep-your-travel-expenses-under-control-with-tripbudget/  You can join the discussion here: http://forum.xda-developers.com/showthread.php?t=2644669

TRANSLATION

If you want to help with crowd translation of TripBudget to your language – you can help using translation page. THANKS A LOT. Current state – RU, ES, NL, FR, IT langs are already at market.

NOTE:  Any reports and suggestions are highly welcome in comments.

 

 

]]>
http://vitiy.info/tripbudget-fast-budget-calculator-logger-for-trips-android/feed/ 1
Public localizator – web service for online localization of applications http://vitiy.info/public-localizator-web-service-for-online-localization-of-applications/ http://vitiy.info/public-localizator-web-service-for-online-localization-of-applications/#comments Sat, 07 Dec 2013 19:26:50 +0000 http://vitiy.info/?p=178 Here i present small but powerful web instrument for public localization of applications and some more thoughts on software translations, which soon will be published as open-source after some tests in real projects.

Public localizator

Public localizator (beta) – is online web solution for fast translation of application strings to many languages by its users. Of course if you have money to invest in localization by paid services – it will be better solution, but if you have project which has wide range of users, which are interested in translation why not to create interface for them. As i had some positive experience of user translation i decided to create simple web tool. This approach is much better than sending some files/tools to your translators –  translation is easy, its continuous process and you can monitor progress at any time.

As for technologies used – here is used standard mysql/php approach which is the most easy to install on any hosting. You will have mysql database which you can parse and even create realtime update of strings inside application via web requests without recompilation.

Public Localizator Menu

 

As i use simple text files for localization in my engine (its not xml format like in android folder but still its not a problem to write converter to any format).

Screenshot 2013-12-07 22.55.40

 

Administrator can see the list of english strings as token-value table with some additional options. I probably will add something here but at the moment you can add comment to string and set is_short flag to indicate to translator that he should take length of label into account.

Screenshot 2013-12-07 22.55.11

Translator will see the list of suggested languages, current translation progress, last activity for each language.

Public Localizator Languages

When one is clicking on desired language the list of localized strings will appear, where you can add or edit any string. If string was submitted by another user you can propose your suggestion, which should be accepted by administrator later.

Public localizator the list of strings

When localization is completed you can export the list of strings into text file.

TEST

As practical application i created section for online localization of Alive Numbers 2 (android project: https://play.google.com/store/apps/details?id=com.calibvr.minimal ) available here: http://vitiy.info/localization/alivenumbers2/

There you can make Alive Numbers 2 to support your native language. The list of languages – Bulgarian, Danish, German, Spanish, Finnish, Franch, Croatian, Hungarian, Indonesian, Italian, Lithuanian, Latvian, Norwegian, Dutch, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Serbian, Swedish, Turkish, Ukrainian, Vietnamese.

I plan to release the code as open-source after test flight.

THANKS:

  • Spanish support as first success. Thanks to Iván Linares.
  • Thanks to Marcus Sundman for swedish localization.

Please note – this localization tool is in beta state – please contact me in case of any errors, bugs, etc.

 

]]>
http://vitiy.info/public-localizator-web-service-for-online-localization-of-applications/feed/ 6
Alive Numbers 2 – android release of my minimalistic live wallpaper with embedded widgets http://vitiy.info/alive-numbers-2-my-new-live-wallpaper-with-embedded-widgets/ http://vitiy.info/alive-numbers-2-my-new-live-wallpaper-with-embedded-widgets/#comments Sat, 24 Aug 2013 09:22:32 +0000 http://vitiy.info/?p=81 Brand new version of live wallpaper –  Alive Numbers 2 for Android devices. Enjoy smooth OpenGl ES 2.0 animation of minimalistic animated background in couple with customisable embedded widgets. New version has adjustable color schemes and ability to hand-tune widget layout. You can choose from set of base animations and play with a lot of options for every widget.

Alive Numbers 2

It can be found by name ‘Alive numbers 2’ or here: https://play.google.com/store/apps/details?id=com.calibvr.minimal

This topic contains screens and details…

Live wallpaper contains several animations. Default background animation is particle system of flying numbers with tricky blur algorithm. All particles are rendered in single pass. This gives only 3% cpu load under Samsung Galaxy Note 2. Wallpaper do not consume battery resources when is not visible – so power loss is not an issue. Count of particles, speed, color, fade options, desaturation can be adjusted in options.

Alive Numbers 2

Particle system is also coupled with Parallax effect based on accelerometer sensor. Intensity of this effect can be adjusted at animation options (or be completely disabled). You can watch the following video to see how the effect looks like:

Application is powered by my cross-platform engine based on OpenGl ES 2.0. Advantages that comes with it are theme of big separate topic but here are several the most handy:

You can switch interface language at any time from options and this does not correlate with device locale settings.

If details or text are too small you can set global screen scale as you like it (at engine options). Everything will become bigger or smaller as you like it.

You can enjoy rich custom controls which make options easy to handle:

Alive Numbers 2 - animation options

You can change the values and see the results immediately through the transparent layer.

Live wallpaper has the list of widgets you can customize – and more are planned in future. Custom clock, battery indicator, current date indicator, current day of week, weather data based on current gps position with hourly/daily forecast, currency exchange rates based on ECB data, etc…

Alive Numbers 2 - widgets

Each widget has several styles and options. Screen layout can be adjusted very fast. Widgets can be positioned on the screen using drag-drop method – so you can customize your layout as you like:

Alive Numbers 2

Clicking on widgets launches default applications from system – like calendar, clock, battery consumption info, etc. This behaviour can be disabled in options ( for every widget separately ).

From options you can switch base background animation.

Alive Numbers 2 Animation list

Example of settings with sweet hearts animation:

Hearts animation Alive numbers 2

Animation which is very similar to iOS7 alive wallpaper:

Alive Numbers 2 Circles animation

Video of customization process:

Some five-stars-responses from market:

Great app I absolutely love it. Made my home screen a lot less cluttered and uniform.

Incredibly neat and beautiful!!! I love this live wallpaper, love the fact that it comes with in built widget, 5 stars straight!!

Excellent New parralax effect is great.

My Kind Of Wallpaper Alive numbers was my default wallpaper for the last 6 mos. This one, the newer version is so much better. Configuration is a breeze. Keep up the good work!

INSTALL

Alive numbers 2 Icon

The wallpaper can be found by name ‘Alive numbers 2‘ or here: https://play.google.com/store/apps/details?id=com.calibvr.minimal

 

 

LOCALIZATION

I created special tool for online localization available here: http://vitiy.info/localization/alivenumbers2/

There you can make Alive Numbers 2 to support your native language. The list of languages – Bulgarian, Danish, German, Spanish, Finnish, Franch, Croatian, Hungarian, Indonesian, Italian, Lithuanian, Latvian, Norwegian, Dutch, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Serbian, Swedish, Turkish, Ukrainian, Vietnamese.

Please note – localization tool is in beta state – please contact me in case of any errors, bugs, etc.

Alive numbers 2 Promo 2

Alive numbers 2 Promo 2

UPDATES

Next section contains information about updates and should be updated when new versions will come at market. Main upper text will be fixed to reflect changes, but lower part can contain additional images and details.

UPDATE (v.2.005):

Clicking on widgets launches default applications from system – like calendar, clock, battery consumption info, etc. Weather widget now has weekly/hourly forecast.

Alive Numbers 2: forecast

UPDATE (v.2.007)

Brand new Parallax effect using accelerometer for inner particle system.

UPDATE (v.2.008)

New widget: Currency Rates. Exchange reference rates from official European Central Bank feed (daily updated). You can select your local currency as the base and monitor the list of rates (up to 28 items).

Currency rates gadget

UPDATE (v.2.009)

Two new animations for background – snowflakes and sweet hearts. New global widget settings section was added. You can set default font for widgets. Clock has separate option for font.

UPDATE (v2.010)

Some urgent fix for weather provider

UPDATE (v2.011)

New animation background was added – circles. Its very similar to iOS7 live wallpaper.

New clock styles for clock widget were added and old styles were improved a bit. PM/AM label was added for 12h format clock.

Alive Numbers 2 Clock style 1

Tower style (one on one) :

Alive Numbers 2 Clock style 2

Clock style as minimal text:

Alive Numbers 2 Clock style 3

Weather widget now has manual refresh button located on forecast panel. Also location now is displayed as city name – not local area of city (there is new option for that).

UPDATE (v2.013)

– spanish localization

– new background animation called “Lasers”

– clock widget now shows current alarm (can be disabled in properties)

– new hi-res xxhdpi icon

– when you switch animation particles are filled instantly

Alive numbers 2 lasers animation

UPDATE (v2.014)

– new stripes animation
– support for ART runtime (Android 4.4)
– fix for clock widget dragging
– minor fixes for parallax effect
– fix of widget dragging bug on high dpi devices
– fps limit was increased for more smooth animation

Screenshot of new STRIPES animation:

Alive numbers 2 Stripes animation

UPDATE (v2.015)

New animation for St.Valentine day – FLOWERS:

Alive numbers 2 - flowers animation

– New localization – Swedish (thanks to Marcus Sundman)

– New more high-res fonts and 2 new fonts for widgets

– New performance settings

UPDATE (v2.016)

– Support for german and polish languages

UPDATE (v2.017)

Alive numbers 2 Coffee animation

+ New animation – COFFEE
+ Currency widget now supports a lot more currencies
+ GPS sensor fixes and new location provider for weather widget
+ Support for timely as custom app for clock widget

UPDATE (v2.018)

+ New option for weather widget – disable GPS data sensor for location (to preserve battery)

+ Minor fixes for GPS implementation

UPDATE (v2.019)

NEW ANIMATION: Contains new long-awaited animation – custom user image (which you can pick from device gallery) combined with parallax and blur effects

UPDATE (v2.020-2.021)

+ fixes for weather widget

+ FR language support

Any suggestions are welcome at comments. 

 

]]>
http://vitiy.info/alive-numbers-2-my-new-live-wallpaper-with-embedded-widgets/feed/ 13
Live Wallpaper under Android can be powered by my cross-platform engine now http://vitiy.info/live-wallpaper-under-android-can-be-powered-by-my-cross-platform-engine-now/ http://vitiy.info/live-wallpaper-under-android-can-be-powered-by-my-cross-platform-engine-now/#respond Tue, 06 Aug 2013 18:30:12 +0000 http://vitiy.info/?p=70 After my recent modifications of android part of my cross-platform engine, it is possible to make application also run as android live background. I plan to implement the same feature as well for iOS 7, but a bit later. Here is working example (https://play.google.com/store/apps/details?id=com.calibvr.synctimer):

Synctimer as live background

Android live wallpaper is not a general Activity application – it is special WallpaperService. And you cant implement it in pure C++ using NativeActivity. All my core is cross-platform C++ so i implemented two-way communication between C++ and JAVA. From C++ NativeActivity you can call JAVA classes through JNI and from java service you can call native (c++) methods of engine core.

The tricky part that all this communication involves a lot of different threads. Wallpaper service has its own thread, but rendering should be performed in another one. My native C++ core is launched as third thread and spawns other async threads which could call some java methods. But i got through all this nightmare using mutexed queues of events. As result i got full functionality of my engine at the background of android launcher.

When i only started working with android i wrote small live wallpaper in pure java (with no OpenGL). Wasted only couple of evenings and even lost the source code. But recently i was surprised when discovered that it has more than 100.000 downloads (https://play.google.com/store/apps/details?id=back.livenumbers). It does not even work properly on my Note 2 now.

But the point is that now i have smooth OpenGl ES 2.0 animations/effects in couple with engine functionality. Probably, i will create couple of stylish backs fused with some in-code widgets (like battery indicator, weather forecast, clock, calendar date or something else) as implementation will be relatively easy now using my engine. Any suggestions on this matter are welcome.

]]>
http://vitiy.info/live-wallpaper-under-android-can-be-powered-by-my-cross-platform-engine-now/feed/ 0
Курсы доллара и евро: гаджет для висты http://vitiy.info/%d0%ba%d1%83%d1%80%d1%81%d1%8b-%d0%b4%d0%be%d0%bb%d0%bb%d0%b0%d1%80%d0%b0-%d0%b8-%d0%b5%d0%b2%d1%80%d0%be-%d0%b3%d0%b0%d0%b4%d0%b6%d0%b5%d1%82-%d0%b4%d0%bb%d1%8f-%d0%b2%d0%b8%d1%81%d1%82%d1%8b/ http://vitiy.info/%d0%ba%d1%83%d1%80%d1%81%d1%8b-%d0%b4%d0%be%d0%bb%d0%bb%d0%b0%d1%80%d0%b0-%d0%b8-%d0%b5%d0%b2%d1%80%d0%be-%d0%b3%d0%b0%d0%b4%d0%b6%d0%b5%d1%82-%d0%b4%d0%bb%d1%8f-%d0%b2%d0%b8%d1%81%d1%82%d1%8b/#comments Fri, 05 Sep 2008 10:30:57 +0000 http://vitiy.info/?p=50 Давненько хотел написать какой нить гаджет для висты. Изначально хотел сделать это на WPF, но выяснилось что к гаджетам у микрософта другой подход. Посути гаджет – это html веб страница со всеми вытекающим. Поэтому только xbap или silverlight можно засунуть в гаджет (причем стало это можно сделать относительно недавно).

Посмотрев в каталоге гаджетов, гаджеты, которые показывают курс валют, и не найдя там ничего интересного, я решил написать свой монитор курсов. У нашего центрабанка есть прекрасный веб сервис, который предоставляет всю информацию о курсах валют за любой период.

Попытка использовать сильверлайт закончилась неудачно. Во первых, под 64-битной вистой сильверлайт не работает в 64-битном сайдбаре. Это можно обойти, запуская 32-ух битную версию сайдбара, но это уже извращение. Во вторых, из сильверлайта в гаджете нельзя нормально обратиться к вебсервису. Это связано с тем, что сильверлайт в гаджете не видит конфигурационных xml файлов и не может получить доступ. Есть workaround, который передает данные в сильверлайт контрол через скрипт AJAX, но я считаю это не очень красивым. 

В итоге я сделал проще – гаджет просто показывает картинку с вебсервера, обновляя ее раз в час. А на сервере работает php скрипт по крону, который запрашивает данные у центробанка. Гаджет показывает текущий курс бакса и евро, на сколько он изменился за день и за неделю и график динамики курсов за 3 недели. 

Гаджет курса валют ЦБ для висты

Скачать гаджет

Просто запустите скаченный файл, и гаджет установится. Если этого не произойдет и он откроется как зип архив, то можно на гаджете нажaть Open with… Sidebar. Если и это не поможет, то можно создать папку C:\Users\Ваше имя\AppData\Local\Microsoft\Windows Sidebar\Gadgets\CurrencyRates.gadget\ и в нее скопировать содержимое архива. 

]]>
http://vitiy.info/%d0%ba%d1%83%d1%80%d1%81%d1%8b-%d0%b4%d0%be%d0%bb%d0%bb%d0%b0%d1%80%d0%b0-%d0%b8-%d0%b5%d0%b2%d1%80%d0%be-%d0%b3%d0%b0%d0%b4%d0%b6%d0%b5%d1%82-%d0%b4%d0%bb%d1%8f-%d0%b2%d0%b8%d1%81%d1%82%d1%8b/feed/ 21
Новый браузер от гуугла: Chrome http://vitiy.info/%d0%bd%d0%be%d0%b2%d1%8b%d0%b9-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80-%d0%be%d1%82-%d0%b3%d1%83%d1%83%d0%b3%d0%bb%d0%b0-chrome/ http://vitiy.info/%d0%bd%d0%be%d0%b2%d1%8b%d0%b9-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80-%d0%be%d1%82-%d0%b3%d1%83%d1%83%d0%b3%d0%bb%d0%b0-chrome/#respond Wed, 03 Sep 2008 09:36:40 +0000 http://vitiy.info/?p=49  

Гуугл порадовал выпуском нового браузера, который просто обязан потеснить осла и файрфокс на компьютерах продвинутых пользователей. 

Главное достоинство – скорость:

 

На графике скорость исполнения различных тестов JavaScript (источник). 

Кроме того приятный дизайн, удобные вкладки, запуск каждой страницы в песочнице, режим инкогнито, удобная стартовая страница как в опере. Стоит отметить, что бета уже достаточно стабильна. 

]]>
http://vitiy.info/%d0%bd%d0%be%d0%b2%d1%8b%d0%b9-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80-%d0%be%d1%82-%d0%b3%d1%83%d1%83%d0%b3%d0%bb%d0%b0-chrome/feed/ 0
PerfectPhotos – обработка фотографий на WPF http://vitiy.info/perfectphotos-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%84%d0%be%d1%82%d0%be%d0%b3%d1%80%d0%b0%d1%84%d0%b8%d0%b9-%d0%bd%d0%b0-wpf/ http://vitiy.info/perfectphotos-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%84%d0%be%d1%82%d0%be%d0%b3%d1%80%d0%b0%d1%84%d0%b8%d0%b9-%d0%bd%d0%b0-wpf/#comments Thu, 27 Mar 2008 14:42:02 +0000 http://vitiy.info/?p=35 Хочу представить Вам один из моих последних проектов – программу для обработки фотографий PerfectPhotos. Программа содержит большое количество средств для комплексного улучшения изображений и призвана избавить фотографа от необходимости муторной работы с фотошопом там где это возможно. Более подробное описание возможностей можно найти на сайте.

 

Отмечу лишь, что вся обработка ведется с 16-битным цветом (16 бит на канал).

С версии 1.0.1.96 программа поддерживает напрямую формат цифровых зеркальных камер Canon (.cr2), и с успехом может быть использована в качестве raw-конвертора.

Программа написана на WPF (.Net 3.0) и потому ее интерфейс отличается в лучшую сторону от конкурентов.

]]>
http://vitiy.info/perfectphotos-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%84%d0%be%d1%82%d0%be%d0%b3%d1%80%d0%b0%d1%84%d0%b8%d0%b9-%d0%bd%d0%b0-wpf/feed/ 12
Математика в ворде – Word 2007 Add-in: Microsoft Math http://vitiy.info/%d0%bc%d0%b0%d1%82%d0%b5%d0%bc%d0%b0%d1%82%d0%b8%d0%ba%d0%b0-%d0%b2-%d0%b2%d0%be%d1%80%d0%b4%d0%b5-word-2007-add-in-microsoft-math/ http://vitiy.info/%d0%bc%d0%b0%d1%82%d0%b5%d0%bc%d0%b0%d1%82%d0%b8%d0%ba%d0%b0-%d0%b2-%d0%b2%d0%be%d1%80%d0%b4%d0%b5-word-2007-add-in-microsoft-math/#respond Wed, 21 Nov 2007 17:13:52 +0000 http://vitiy.info/?p=27 Прочитал сегодня тут о бесплатном аддоне к офису, который позволяет производить простейшие математические вычисления прямо в Word 2007. Самая полезная вещь – можно строить графики функций не отходя от кассы. Я обычно для этих целей пользуюсь Mathmatica 6.0, но если нужно построить простейший график, то зачем палить из пушки по воробьям.  

Но, естественно, не стоит надеяться на чудо:

]]>
http://vitiy.info/%d0%bc%d0%b0%d1%82%d0%b5%d0%bc%d0%b0%d1%82%d0%b8%d0%ba%d0%b0-%d0%b2-%d0%b2%d0%be%d1%80%d0%b4%d0%b5-word-2007-add-in-microsoft-math/feed/ 0