Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
Native American Music app for meditation and relaxation — Gideros Forum

Native American Music app for meditation and relaxation

Hey guys! :smile:
Here's one little app I've made recently.

It was supposed to be a quick-made trash app, but it took me a while to create it and in the end it turned out to be not so trashy (I even added rewarded videos and IAP there) :D
Calm Native American Music for meditation and relaxation and better sleep ->
(If you like this kind of music (or like to help), you may want to install the app and post feedback and keep it on your phone for a while.
If not, probably it's bad to just install it, take a look and delete it instantly (cause Google watches our behavior, if we just take a look and delete app, that's obviously bad for ranking)

Thanks!
B)
> Newcomers roadmap: from where to start learning Gideros
"What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
“The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
+1 -1 (+5 / -0 )Share on Facebook

Comments

  • rrraptorrrraptor Member
    edited December 2019
    Quick review on Russian :D

    Саму музыку не слушал, но есть несколько придирок.
    1. Зачем так много пустого места сверху? Предполагаю, что для рекламы, но её нет. Как и любой другой впрочем :)
    2. Скролл работает не совсем привычно. Если по окончании скроллинга палец отпускается на картинке, то она выбирается, следовательно загружается музыка.
    3. Нет кэширования музыки, т.к. при её повторном воспроизведении всё на секунду другую виснет, из-за чего скролл выглядит очень дерганым.
    4. Если воспроизвести ту же самую музыку, которая играет в данный момент все опять фризится.
    5. Нижние 3 картинки слишком рано исчезают (зачем вообще им исчезать?), я это очень отчетливо вижу (разрешение девайса 2340 x 1080). Предполагаю, что неверно находится высота экрана. Вот так можно посчитать все края экрана :smile:
    function GetResolition()
    	local dx = application:getLogicalTranslateX() / application:getLogicalScaleX()
    	local dy = application:getLogicalTranslateY() / application:getLogicalScaleY()
    	local w = application:getContentWidth()
    	local h = application:getContentHeight()
     
    	return {
    		Left = -dx, Top = -dy,
    		Right = w + dx, Bottom = h + dy,
    		W = dx*2 + w,
    		H = dy*2 + h,
    		Center = {x = w / 2, y = h / 2}
    	}	
    end

    Likes: Apollo14

    +1 -1 (+1 / -0 )Share on Facebook
  • Apollo14Apollo14 Member
    edited December 2019
    rrraptor said:

    Quick review on Russian :D

    Саму музыку не слушал, но есть несколько придирок.
    1. Зачем так много пустого места сверху? Предполагаю, что для рекламы, но её нет. Как и любой другой впрочем :)
    2. Скролл работает не совсем привычно. Если по окончании скроллинга палец отпускается на картинке, то она выбирается, следовательно загружается музыка.
    3. Нет кэширования музыки, т.к. при её повторном воспроизведении всё на секунду другую виснет, из-за чего скролл выглядит очень дерганым.
    4. Если воспроизвести ту же самую музыку, которая играет в данный момент все опять фризится.
    5. Нижние 3 картинки слишком рано исчезают (зачем вообще им исчезать?), я это очень отчетливо вижу (разрешение девайса 2340 x 1080). Предполагаю, что неверно находится высота экрана. Вот так можно посчитать все края экрана :smile:
    function GetResolition()
    	local dx = application:getLogicalTranslateX() / application:getLogicalScaleX()
    	local dy = application:getLogicalTranslateY() / application:getLogicalScaleY()
    	local w = application:getContentWidth()
    	local h = application:getContentHeight()
     
    	return {
    		Left = -dx, Top = -dy,
    		Right = w + dx, Bottom = h + dy,
    		W = dx*2 + w,
    		H = dy*2 + h,
    		Center = {x = w / 2, y = h / 2}
    	}	
    end
    Спасибо!
    #1,2,5: да, это проблемки из-за неидеального древнего класса "scrollview". Исчезание картинок думаю смогу подправить (я тестировал на недлинном экране 1920x1080, этот момент упустил!).
    #3: я не придумал, как кэшировать анимации :( Это texturepack'и, если их кэшировать, это кэш занимает ~700мб озу.
    Приходится каждый раз вызывать функцию 'Texturepack.new()', вот она как раз создает сильные лаги, я об этом репортил на форуме, но сказали что ничего не поделать с данными лагами (в идеале было бы делегировать вызов 'Texturepack.new()' на другое ядро, но я не знаю как это сделать в плагине LuaThreads).
    #4: это смогу подправить!

    Спасибо!!

    P. S. English version:
    #1,2,5: yes, these problems come from old "scrollview" class. I definitely should fix disappearing of pictures (didn't notice it, cause my phone isn't long, it's 1080x1920).
    #3: I've no idea how to pre-cache animations here :( It's texturepacks, if I cache them, it'll take ~700mb of ram.
    Because of that I have to call 'Texturepack.new' every time, this call itself causes heavy lags, I've reported about it earlier on forums, but guys said that nothing can be done about heavy lags from every 'Texturepack.new' call.
    (I don't know, probably 'Texturepack.new' could be delegated to another CPU core like some calls are delegated in LuaThreading plugin? But I've no idea how to do that anyways and I can't suggest that, because most of developers don't see problem in it, they don't use texturepacks frequently)
    #4: Gotta fix that!

    THANKS!
    > Newcomers roadmap: from where to start learning Gideros
    "What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
    “The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
  • Apollo14Apollo14 Member
    edited December 2019
    @rrraptor можешь плз скинуть скриншот приложения, как оно отображается у тебя на удлиненном экране? Спс!
    (can you pls post screenshot from your phone with longer screen? )
    > Newcomers roadmap: from where to start learning Gideros
    "What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
    “The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
  • rrraptor said:

    Quick review on Russian :D
    Вот так можно посчитать все края экрана :smile:

    function GetResolition()
    	local dx = application:getLogicalTranslateX() / application:getLogicalScaleX()
    	local dy = application:getLogicalTranslateY() / application:getLogicalScaleY()
    	local w = application:getContentWidth()
    	local h = application:getContentHeight()
     
    	return {
    		Left = -dx, Top = -dy,
    		Right = w + dx, Bottom = h + dy,
    		W = dx*2 + w,
    		H = dy*2 + h,
    		Center = {x = w / 2, y = h / 2}
    	}	
    end
    твоя інформація застаріла, зараз края можна визначити так:
    minX,minY,maxX,maxY=application:getLogicalBounds()
    my games:
    https://play.google.com/store/apps/developer?id=razorback456
    мій блог по гідерос https://simartinfo.blogspot.com
    Слава Україні!
  • rrraptorrrraptor Member
    edited December 2019
    oleg said:

    твоя інформація застаріла, зараз края можна визначити так:
     
    <code class="CodeInline">minX,minY,maxX,maxY=application:getLogicalBounds()
    I just copy paste my old code, so I completely forgot about this method )))
    Also, if you only needs left, top, right and bottom bounds, then yes, its better to use getLogicalBounds(), but if you need absolute screen size and center, you need a bit of extra calculations :smile:
    app @ application 
    local dx = app:getLogicalTranslateX() / app:getLogicalScaleX()
    local dy = app:getLogicalTranslateY() / app:getLogicalScaleY()
    local w = app:getContentWidth()
    local h = app:getContentHeight()
     
    print(string.format([[Left: %f, Top: %f, Right: %f, Bottom: %f,
    	Absolute size: [%f, %f],
    	Center: [%f, %f] ]], -dx,-dy,w+dx,h+dy, dx*2 + w, dy*2 + h, w/2,h/2)	
    )
     
    local minX,minY,maxX,maxY=application:getLogicalBounds()
    local absW, absH = maxX + math.abs(minX), maxY + math.abs(minY)
    local cx, cy = minX + absW / 2, minY + absH / 2
    print(string.format([[Left: %f, Top: %f, Right: %f, Bottom: %f,
    	Absolute size: [%f, %f],
    	Center: [%f, %f] ]], minX,minY,maxX,maxY, absW, absH, cx, cy)
    )
  • olegoleg Member
    edited December 2019
    rrraptor said:

    if you need absolute screen size and center, you need a bit of extra calculations :smile:

    ;)
    minX,minY,maxX,maxY=application:getLogicalBounds()
    scrX=(minX-maxX)*-1
    scrY=(minY-maxY)*-1
    centrX =application:getContentWidth()/2
    centrY =application:getContentHeight()/2
    my games:
    https://play.google.com/store/apps/developer?id=razorback456
    мій блог по гідерос https://simartinfo.blogspot.com
    Слава Україні!
  • @Apollo14 hyper super mega cool app! Congratulations!

    Likes: Apollo14

    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLux said:

    @Apollo14 hyper super mega cool app! Congratulations!

    Thx guys!
    With application:getLogicalBounds() I think tomorrow I'll find out how to optimize app for longer smartphone screens (if I won't, I'll ask you, hackers! B) )

    @rrraptor спасибо большое за скриншоты в личку!
    (thanks for sending screenshots to pm! )

    Likes: MoKaLux

    > Newcomers roadmap: from where to start learning Gideros
    "What one programmer can do in one month, two programmers can do in two months." - Fred Brooks
    “The more you do coding stuff, the better you get at it.” - Aristotle (322 BC)
    +1 -1 (+1 / -0 )Share on Facebook
  • I love listening Native American music for when I go to sleep since it’s so peaceful and makes me appreciate life.
Sign In or Register to comment.