четверг, 22 августа 2013 г.

Facebook left-side menu with storyboards

Well, facebook-like left-side menus became really trendy UI pattern, so everyone tries to insert it to their projects.
Functionally it's primitive: you have left-view in background, and there's drag gesture recognizer, which "catches" foreground view and moves it on xz-direction.

There are lots of open source implementations for ios:
  • ViewDeck
  • SASlideMenu
  • JWSlideMenu
  • DDMenuController
  • PKRevealController
  • ECSlidingViewController
  • MWFSlideNavigationViewController
  • MFSideMenu
  • HHTabListController
  • MTSlideViewController
  • SlideViewController
  • MTStackViewController
  • MMDrawerController

  • I'd recommend to use ViewDeck and SASlideMenu, because they are the most functional and easiest to integrate (For android developers it's worth to mention this stackoverflow answer).

    But there was a problem related to storyboards: there's no out-of-box solution to integrate left-side menu with storyboards power! Recently I found really easy to use framework: ViewDeckStoryBoards. Hooray, there's no need to revert back to xibs nightmare! It's based on viewDeck, there's a little code needed(just to overwrite left side & main windows). It supports arc, storyboards. 



    суббота, 29 июня 2013 г.

    Принцип самурая или почему надо радоваться преждевременным ошибкам

    Делаем игру с командой и часто инспектируем код друг друга.
    Натолкнулся вот на это:(ссылка)


    1.   void Awake ()
    2.   {
    3.     saveDirPath = Application.dataPath + "/Levels/";
    4.     
    5.     if (buttonSave != null) {
    6.       UIEventListener.Get (buttonSave.gameObject).onClick += OnButtonSave_Click;
    7.     }
    8.     if (buttonLoad != null) {
    9.       UIEventListener.Get (buttonLoad.gameObject).onClick += OnButtonLoad_Click;
    10.     }
    11.     if (buttonInputDialogOk != null) {
    12.       UIEventListener.Get (buttonInputDialogOk.gameObject).onClick += OnButtonInputDialogOk_Click;
    13.     }
    14.     if (buttonInputDialogCancel != null) {
    15.       UIEventListener.Get (buttonInputDialogCancel.gameObject).onClick += OnButtonInputDialogCancel_Click;
    16.     }
    17.     if (buttonselectLevelDialogClose != null) {
    18.       UIEventListener.Get (buttonselectLevelDialogClose.gameObject).onClick += OnButtonselectLevelDialogClose_Click;
    19.     }
    20.   }
    Коротко: есть кнопки, и при запуске подписываются обработчики. Все хорошо, код абсолютно безопасен. Но он плох. Почему?

    воскресенье, 23 июня 2013 г.

    Почему Unity?

    Меня попросили написать короткую статью о том, зачем нужен unity3d и почему я пользуюсь именно им. Решил поделиться своими мыслями здесь, в блоге и постраться не создать очередной холливарной статьи :)

    Рынок мобильных приложений, в частности, мобильного гейм-дева, такой, как сейчас, появился совсем недавно - в 2008-2009 году, почти сразу после появления революционного по тем меркам гаджета под названием iphone. А поскольку игры на мобильных начали пользоваться бешенным спросом, то программисты начали делать все, чтобы этот спрос удовлетворить. Совсем скоро начали появляться движки для создания мобильных игр, такие как shiva3d, cocos2d, airplay sdk(сейчас marmalade), corona sdk, unreal engine для мобилок(ограниченный udk), unity3d и так далее. У меня был совсем маленький опыт разработки под marmalade, немножко поигрался с udk, но больше всего мне понравился unity3d.

    Чем же привлекателен лично для меня unity3d:

    пятница, 21 июня 2013 г.

    среда, 12 июня 2013 г.

    Lugat sozluk

    Do you remember our osman-turkish ios dictionary? I've been asked for android version many times.
    To those people: there's android version with more than 50000 words! It's really cool app!

    On these holidays I reverse-engineered it and now I have their words database. I just need to convert it to my own format, solve licence issues. I think to finish this by the end of June.

    пятница, 24 мая 2013 г.

    Так, ни о чем

    один файл, а внутри: два энама, три класса, две руками написанные стейт-машины, 400 строк кода. Здравствуй, быдлокод:


    вторник, 14 мая 2013 г.

    Some materials from knowledge sharing seminar



    Two months ago we started our unity knowledge sharing seminars. I forgot to share materials I promised to, so let me do it here.


    2D UI - NGUI (Presentation on russian)


    2D in Unity3D from Рустам Ганеев

    Useful links:


    Unity shaders (Presentation on russian)


    Useful links:

    UPD: Dustin Lee, the Unity evangelist kindly shared awesome slides about shaders, just check it out: