小编pas*_*ssy的帖子

如何制作像Timely一样美观时尚的应用程序

谷歌在设计方面的引用,以及一些应用示例:

根据谷歌在设计部分的http://developer.android.com/中所说的,开发人员应该考虑三个目标:

  • 让我着迷
  • 简化我的生活
  • 让我惊叹

我们(开发人员)知道哪些BTW.

通过查看Play商店中的许多成功应用程序,您可以看到它们是按照Google设计指南设计的,并且几乎使用谷歌在他们自己的应用程序中使用的相同 组件主题以及样式.

许多人确实喜欢这些设计以及主题和组件方面的这些Android标准,但当你看到Playstore中的一些应用程序或某些硬件制造商的应用程序(如三星)已经构建了他们的特殊应用程序(如galaxy note 10.1 note take app)或asus天气应用程序或在Playstore中Timely应用程序,在功能和课程设计方面很棒,你可以看到他们使用不同类型的设计和组件.


现在让我们深入了解Google 所说的内容:

典型的Android应用程序使用操作栏,许多应用程序将包含导航抽屉.

像这些:

动作栏: 在此输入图像描述

导航抽屉:

在此输入图像描述

和Android上的其他标准组件.

但是,一些开发人员如何使应用程序如此美观和功能完美(几乎!)像Timely应用程序,而不是使用谷歌定义的许多Android典型组件.


让我们来看看Timely app:

这是用户可以看到他/她可以设置一个或只是观看时钟的警报的屏幕:

在此输入图像描述 在此输入图像描述

现在我想到的问题是:

  • 我怎么能像这样主题我的应用程序?
  • 如何制作这样的背景动画并在我的应用中使用它?
  • 他们的开发人员是否一起使用unity和eclipse使其作为Android应用程序运行?
  • 如果他们确实使用了统一,那么应用程序如何运行得非常流畅?
  • 在它的操作栏中,它们是如何着色的并为对象定义了不透明度?
  • 什么样的动画类可以做他们在应用程序中做的事情?(比如时钟变换动画)
  • 如果他们使用统一,那么他们的应用程序的大小为何是10MB?

还有许多其他类似的应用程序(没有100%那么相似)都有自己独特的设计.

据我所知,没有太多的网站提供Android的自定义组件,如http://androidviews.net/所以我们似乎被迫制作我们自己的组件,这是耗时的,在这个时候(2013年)isn不完美,而对于ios,其他公司生产的定制组件很多.

我还查看了Timely应用程序网站,在他们的FAQ部分中有一个地方,他们说他们会透露他们做了主题,着色和组件的内容和方式,但因为他们的公告没有时间表,我不知道我喜欢呆在黑暗的地方,我来这里问你专家.

这是报价他们的网站:

我是开发人员,无法弄清楚你是如何做这些动画和色彩效果的.

我们计划将来有一个工程博客.敬请关注!

如果你们知道如何制作这样的应用程序,或者你知道他们使用的动画,组件,技巧和黑客的一部分那么你就是我的一天.

android android-animation android-layout android-theme android-view

68
推荐指数
1
解决办法
3万
查看次数

带有Gradle的Robolectric:未找到资源

我正在尝试与新的Gradle Android构建系统一起运行我的Robolectric测试,但我一直在访问我的主项目的资源.

我将构建拆分为两个单独的项目,以避免javaandroidgradle插件之间发生冲突,因此目录结构大致如下所示:

.
??? build.gradle
??? settings.gradle
??? mainproject
?   ??? build
?   ?   ??? classes
?   ?   ?   ??? debug
?   ??? build.gradle
?   ??? src
?       ??? main
?           ??? AndroidManifest.xml
?           ??? ...
??? test
    ??? build.gradle
    ??? src
        ??? test
            ??? java
                ??? ...
                    ??? test
                        ??? MainActivityTest.java
                        ??? Runner.java
                        ??? ServerTestCase.java
                        ??? StatusFetcherTest.java
Run Code Online (Sandbox Code Playgroud)

build.gradletest/目前看起来是这样的:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.stanfy.android:gradle-plugin-java-robolectric:2.0'
    }
} …
Run Code Online (Sandbox Code Playgroud)

android gradle robolectric

31
推荐指数
2
解决办法
2万
查看次数

使用Gradle Android构建系统指定测试依赖项

我想为我的测试指定依赖关系,并在阅读Gradle依赖关系管理基础之后我虽然可以添加testCompile对我的依赖声明的调用,如下所示:

dependencies {
    compile group: 'com.squareup.dagger', name: 'dagger', version: '1.0.0'


    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile group: 'com.squareup', name: 'fest-android', version: '1.0.1'
}
Run Code Online (Sandbox Code Playgroud)

但是,这会出现此错误消息:

> Could not find method testCompile() for arguments [{group=junit, name=junit, version=4.11}] on project ':simstatus'.
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

(完整的gradle构建文件供参考)

android gradle android-studio

28
推荐指数
1
解决办法
2万
查看次数

Haskell中的超类型

如果我在这里使用错误的术语,请提前道歉.

在Haskell中推广两种或更多类型的惯用方法是什么,以便您可以在避免样板代码的同时推迟对它们进行模式匹配?

举一个具体的例子:在我的应用程序中,我想传递执行期间可能发生的错误.这些错误来自不同的模块,所以我不直接控制它们:

data ErrorCatA = WTFError String | OMGError String
data ErrorCatB = BadError Int | TerribleError Float
Run Code Online (Sandbox Code Playgroud)

现在我想传递这些错误类别的某种形式的超类型,所以我可以像这样处理它们:

handleError :: GenericError -> IO ()
handleError err =
    putStrLn $ case err of
        WTFError s -> "WTF?! " ++ s
        OMGError s -> "OMG?! " ++ s
        BadError i -> if i > 5 then "Really bad" else "Not that bad"
        TerribleError f -> "Terrible! " ++ show f
Run Code Online (Sandbox Code Playgroud)

这可能吗?

我通过创建这样的包装器类型得到了最接近的:

data GenericError = CatA ErrorCatA | CatB ErrorCatB …
Run Code Online (Sandbox Code Playgroud)

haskell types

8
推荐指数
2
解决办法
516
查看次数

使用coffeescript与基本的Yeoman项目.

我使用Yeoman使用yo webappgenerator命令创建了一个快速项目框架.在生成的Gruntfile中,我看到它是编译CoffeeScript的设置,但它似乎只是将编译后的文件粘贴在一个tmp文件夹中.

coffee: {
    dist: {
        files: {
           '.tmp/scripts/coffee.js': '<%= yeoman.app %>/scripts/*.coffee'
        }
    },
},
Run Code Online (Sandbox Code Playgroud)

在开发过程中如何将这些包含在项目中.我没有使用RequireJS.

自耕农博士对如何使用咖啡因不清楚.他们只提到它会自动编译.

coffeescript gruntjs yeoman

7
推荐指数
2
解决办法
6952
查看次数

如何调试第三方Gradle插件?

我正在尝试使用gradle签名插件签署 Android AAR工件.不幸的是,我NullPointerException在这个过程中得到了一个相当无助的东西:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':library:signArchives'.
> java.lang.NullPointerException (no error message)

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':library:signArchives'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        [...snip...]
        at org.gradle.launcher.Main.main(Main.java:37)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
        at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: java.lang.NullPointerException
        at org.bouncycastle.openpgp.PGPSignatureGenerator.initSign(Unknown Source)
        at org.bouncycastle.openpgp.PGPSignatureGenerator.initSign(Unknown Source)
        at org.bouncycastle.openpgp.PGPSignatureGenerator$initSign.call(Unknown Source)
        at org.gradle.plugins.signing.signatory.pgp.PgpSignatory.createSignatureGenerator(PgpSignatory.groovy:54)
        at …
Run Code Online (Sandbox Code Playgroud)

java debugging android gradle

7
推荐指数
1
解决办法
2143
查看次数

让grunt.js在预先存在的自耕农项目上工作

我有一个工作的yeoman项目,我运行服务器grunt server,它工作正常.

我将整个东西放入git仓库,并将其检出新文件夹...

当我尝试做'grunt服务器'时,它说:

致命错误:无法找到当地的咕噜声.

如果您看到此消息,则表示未找到Gruntfile或者您的项目未在本地安装grunt.

我无法在本地安装grunt到该目录,并且能够找到并使用GruntFile.

git gruntjs yeoman

5
推荐指数
1
解决办法
1504
查看次数

简化Haskell中的Monadic Type签名

我还是Haskell的新手,我很难找到函数的正确类型签名.

我有这个工作,使用相当简单的功能http-conduit,authenticate-oauth这是副作用,所以我不太关心返回值:

executeOAuthRequest oauth cred request =
    withManager $ \manager -> do
        signed <- signOAuth oauth cred request
        http signed manager
Run Code Online (Sandbox Code Playgroud)

我想指定正确的类型签名,但GHCi的输出对我来说非常可怕:

executeOAuthRequest
  :: (monad-control-0.3.2.3:Control.Monad.Trans.Control.MonadBaseControl
        IO m,
      Control.Monad.Trans.Resource.Internal.MonadThrow m,
      Control.Monad.Trans.Resource.Internal.MonadUnsafeIO m,
      Control.Monad.IO.Class.MonadIO m) =>
     OAuth
     -> Credential
     -> Request
     -> m (Response (ResumableSource (ResourceT m) ByteString))
Run Code Online (Sandbox Code Playgroud)

前三个参数(OAuth,Credential,Request)道理给我,但我不明白的长期前提m,不知是否有必要为GHCI建议指定完整的返回值.

我不想仅仅提供正确的签名,而是想了解查找和减少正确签名背后的过程.

haskell types

5
推荐指数
1
解决办法
199
查看次数

通过标签集中的成员资格过滤 Pandas DataFrame

假设我有一个包含一个列表或一组标签的 DataFrame,我想根据某个标签是否是该行的一部分来过滤 DataFrame,用 Pandas 实现这一点的最惯用的方法是什么?

import pandas as pd

df = pd.DataFrame({
    'amount': [15, 20, 40],
    'tags': [["Food", "Eating Out"], ["Food", "Groceries"], ["Clothes"]],
    'description': ["Garfunkel's", "Tesco", "Hollister"]
})
Run Code Online (Sandbox Code Playgroud)

我有一段有效的代码,但编写起来相当笨拙:

criterion = lambda row: 'Food' in row['tags']
df[df.apply(criterion, axis=1)]
Run Code Online (Sandbox Code Playgroud)

结果应该是:

结果

python filter pandas

5
推荐指数
1
解决办法
2296
查看次数

如何在purescript-halogen中组合有效的事件处理程序和自定义EventUpdates?

在我自定义的Halogen/Purescript项目中,我遵循AJAX示例中的模式,在这里我将我的行为分解为纯粹Input的和有效Request的.

我想更改我的事件处理程序以使用该preventDefault行为,但不明白这会对UI函数的类型产生什么影响.

我通过以下方式更改事件处理程序,对AJAX示例进行了相同的更改:

之前:

H.button [ A.classes [B.btn, B.btnPrimary]
         , A.disabled busy
         , A.onclick (\_ -> pure (handler code))
         ] [ H.text "Compile" ]
Run Code Online (Sandbox Code Playgroud)

后:

H.a [ A.classes [B.btn, B.btnPrimary]
    , A.href "#compile"
    , A.disabled busy
    , A.onclick (\_ -> E.preventDefault $> pure (handler code))
    ] [ H.text "Compile" ]
Run Code Online (Sandbox Code Playgroud)

(完全差异在这里可用)

我最终得到这种类型的错误:

Cannot unify type
    Example.Ajax.Input
    with type
        Halogen.HTML.Events.Monad.Event Halogen.HalogenEffects<(http ::
        Example.Ajax.HTTP | u32519)> Example.Ajax.Input
Run Code Online (Sandbox Code Playgroud)

此时,我有点迷失是否需要调整UI函数的类型签名或者我preventDefault以错误的方式应用修饰符.

purescript halogen

3
推荐指数
1
解决办法
447
查看次数

未捕获的翻译错误:com.android.dx.cf.code.SimException:local 0007:invalid

我不使用Proguard.该项目正在成功构建,但当我尝试在设备上运行时,它显示此错误.我在Android Studio 3.0中使用Kotlin项目工作,这真的很糟糕.我决定切换回2.3 AS,但问题仍然是一样的.日志较小但异常文本相同.

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'

tasks.withType(JavaCompile) {
    options.fork = true
    options.incremental = true
}

android {
    def rootProject = rootProject.ext

    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion
    defaultConfig {
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
        versionCode rootProject.versionCode
        versionName rootProject.versionName
        testInstrumentationRunner rootProject.testInstrumentationRunner
        vectorDrawables.useSupportLibrary = true
       // multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        //flavorDimensions "content"
        production { …
Run Code Online (Sandbox Code Playgroud)

android gradle kotlin

2
推荐指数
1
解决办法
3812
查看次数

Litho的@FromPrepare注释有什么作用?

我一直在阅读Litho的文档,我找到了这个代码示例

@LayoutSpec(events = { ColorChangedEvent.class })
class ColorComponentSpec {
  ...
  @OnCreateLayout
  static ComponentLayout onCreateLayout(
      Context c,
      @Prop EventHandler colorChangedHandler,
      @FromPrepare int color) {
    ...
    ColorComponent.dispatchColorChangedEvent(
        colorChangedHandler,
        color);
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

@FromPrepare注释有什么作用?

android facebook litho

1
推荐指数
1
解决办法
183
查看次数