首页 文章 精选 留言 我的

精选列表

搜索[广告效率],共10000篇文章
优秀的个人博客,低调大师

TypeScript 2019 路线图:更效率,更易用!

TypeScript 开发团队刚刚发布了TypeScript 2019 上半年的发展路线图。2019年1月至6月,开发团队将重点关注以下目标: 覆盖更多 JS 开发者 提高生产力 改善用户体验 提高社区参与度 完善基础设施 不过,开发团队也强调,该路线图更像是一套指导方针,而不是一定要完成的任务,后续可能会根据不断变化的需求和用户反馈进行调整。 部分细节如下: TypeScript 和核心类型系统 以类型安全(type-safe)的方式提供流行的 JS 模式 提高语言表现力 验证类型关系(Proving relationships between types) 更严格的设置 实现 ECMAScript 功能 生产力 "主动" 快速修复 (类似于“建议”功能) 声明文件修复和重构 生成缺失的.d.ts文件 本地 fork@types包 "Bread and butter" fixes & refactorings(指适用于大多数用户的代码修改和修复) 迁移工具 速度、可扩展性和稳定性 在 TSServer 中自动卸载项目 打磨 & 修复 Composite 项目 解决性能问题 支持 ETW 基础架构基准测试 追踪并修复回归 针对 TSServer 的自动化测试基础架构 更多细节可查阅:TypeScript Roadmap: January - June 2019

优秀的个人博客,低调大师

揭秘Android开发效率提升多倍的利器;Gradle

Gradle是什么? Gradle是一种构建语言,目前是Android的默认构建工具,我们编写的编译脚本,其实就是玩Gradle的API,所以从它更底层的意义上看,是一个编程框架。 因为涉及的内容很多没法一两篇文章就介绍详细清楚,方便起见我用PPT图片的形式简单介绍一下。如果需要更详细了解学习的朋友可以看文末。 一.Gradle介绍 二.Gradle 之语言基础 Groovy ; 三.Gradle的重要概念; 1.Gradle Wrapper介绍; 2.Closure; 3.带有闭包的方法调用; 4.闭包重要知识点; 5.Gradle tasts 6.Gradle 插件 四.多维度打包 五.Gradle 的工作流程 详细的讲解介绍; 上面截图中的视频可以免费分享,加Android高级开发群;701740775 备注csdn领取Gradle教程

优秀的个人博客,低调大师

AndroidStudio笔记(4)编码效率+1 的 File Templates

前言 这一篇是接着 AndroidStudio笔记(3)的,在上一篇中我们使用了 Live Templates的关键字来快速补全和生成代码,那有没有更近一步的骚操作?比如创建文件?答案是肯定的,那就是 File Templates。先看看今天的成果物预览图,如果不感兴趣就可以不看下去。 一键创建 TestViewPagerAdapter 创建TestViewPagerAdapter演示 创建RecyclerViewAdapter 创建RecyclerViewAdapter演示 正文 File Templates 的入口 File Templates 有两个入口。 File -> New -> Edit File Templates Edit File Templates File Templates Settings -> Editor -> File and Code Templates File and Code Templates 简单创建 ViewPagerAdapter File Templates 先来试试水,点击左上角的加号,新建一个模板,名字输入为 : ViewPagerAdapter,将编写好的模板代码放到内容框中: ViewPagerAdapter create 代码模板: package ${PACKAGE_NAME}; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import java.util.ArrayList; import java.util.List; /** * Created by ${USER} on ${DATE} */ public class ${NAME} extends FragmentStatePagerAdapter { private List<Fragment> mFragments = new ArrayList<Fragment>(); public ${NAME}(FragmentManager fm, ArrayList fragmentArrayList) { super(fm); this.mFragments = fragmentArrayList; } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getCount() { return mFragments.size(); } } 从上面的代码可以看出,事实上和我们平常写的代码没有什么区别,唯一不同的就是一些占位符,而AS又为我们内置了一些占位符 占位符 含义 ${PACKAGE_NAME} 包名 ${NAME} 弹出的窗口中输入的文件名称 ${USER} 当前电脑的登陆用户的名称 ${DATE} 当前如期 ${TIME} 当前时间 ${YEAR} 当前年份 ${MONTH} 当前月份 ${MONTH_NAME_SHORT} 月份的前三个单词,在中文中无区别,如:九月 ${MONTH_NAME_FULL} 月份的全称,如:九月 ${DAY} 号数,一个月中的几号 ${DAY_NAME_SHORT} 星期几的前三个单词,在中文中无区别,如:星期四 ${DAY_NAME_FULL} 星期几的全称,如:星期四 ${HOUR} 当前小时 ${MINUTE} 当前分钟 ${PROJECT_NAME} 当前项目名称 来看看我们的成果吧。 创建TestViewPagerAdapter演示 看到这里,可能大家会有一个疑问,既然能通过 {NAME}这样通过我们的输入来替换一些属性呢?这就是我们接下来的内容了,创建一个 RecyclerView 的Adapter。 前面说道,AS为我们提供了一些占位符,其实我们只需要按照格式,定义没有的占位符,那么就会显示相应的输入框了,如下: Des Create Des 进阶创建 RecyclerView.Adapter 还是和前面一样的步骤,创建新的 Code File Templates,复制下面的代码块放入内容区: package ${PACKAGE_NAME}; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import java.util.List; /** * Created by ${USER} on ${DATE} */ #parse("File Header.java") public class ${NAME} extends RecyclerView.Adapter<${NAME}.${VIEW_HOLDER}>{ private List<${BEAN_NAME}> mDatas = new ArrayList<>(); @Override public ${VIEW_HOLDER} onCreateViewHolder(ViewGroup parent, int viewType) { return new ${VIEW_HOLDER}(LayoutInflater.from(parent.getContext()). inflate(R.layout.${LAYOUT_NAME}, parent, false)); } @Override public void onBindViewHolder(${NAME}.${VIEW_HOLDER} holder, int position) { } @Override public int getItemCount() { return mDatas.size(); } public void addItems(List<${BEAN_NAME}> datas){ this.mDatas.addAll(datas); notifyDataSetChanged(); } class ${VIEW_HOLDER} extends RecyclerView.ViewHolder { ${VIEW_HOLDER}(View itemView) { super(itemView); } } } 占位符解释 名字 含义 ${NAME} 文件名、类名 ${VIEW_HOLDER} ViewHolder的类名 ${BEAN_NAME} 实体类的名字 ${LAYOUT_NAME} 布局的名称 要使用这个模板,我们需要先创建 bean 和 layout 文件,我为了演示,已经是提前创建好了。 来看看成果吧: 创建RecyclerViewAdapter演示 看看,的确是达到了我们想要的结果,是不是节省了大量的时间?快来试一试吧! 最后 总结与结束 File Templates这个东西并不难,难的是我先要有代码,然后一步一步的改造成File Templates,个人也希望大家都能有自己的File Templates,我们不应该把大多数时间浪费到重复性的工作上。 另外就是File Templates是可以导出,不用怕丢失,所以我们可以放心大胆的收集和编写自己的File Templates,具体导出方法如下: 导出 彩蛋 另外,相信大家也发现了,我们在使用 File Templates 的时候我们需要先创建好相应的东西,如 bean、layout等,有没有一种方式能够让我省去这些创建步骤呢?答案是肯定的,敬请期待我的下一篇文章。 我的博客地址,第一时间会将文章发布在上面。 我的GitHub地址,所有文章中的源码都在这里。 FullScreenDeveloper

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册