├── README.md ├── Sketch Measure ├── index.html ├── links │ ├── gankio-gankio.html │ └── gankio-webview.html └── preview │ ├── gankio-gankio.png │ └── gankio-webview.png ├── gank.io.sketch └── materials ├── Artboard.png └── Sketch-Measure.png /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Android Proficiency Exercise 3 | 4 | ## Overview 5 | 6 | To verify coding standards and Android knowledge, we ask that the developer who will be performing work for us complete this small test. This proof-of-concept exercise will be evaluated on both the code quality and the final product with equal weighting. 7 | 8 | We would like you to create a simple app with the open API provided by [http://gank.io/api](http://gank.io/api). Through this project, you are supposed to show us your 9 | - proficiency on coding skills, 10 | - good comprehension, communication and collaboration skills, 11 | - potential and talents. 12 | 13 | ## Specification 14 | 15 | ### API 16 | 17 | Read the API documentation of [http://gank.io/api](http://gank.io/api) carefully. You will have to request a json response which lists the posts under these topics `Android`/`iOS`/`前端`. 18 | 19 | > GET http://gank.io/api/data/Android/1/1 20 | 21 | ```json 22 | { 23 | "error": false, 24 | "results": [ 25 | { 26 | "_id": "5833c3b3421aa926e43aef90", 27 | "createdAt": "2016-11-22T12:04:03.555Z", 28 | "desc": "随着 Android 引入 Java 8 的一些功能,请记住每一个标准库的 API 和语言特性都会带来一些相关的开销,这很重要。虽然设备越来越快而且内存越来越多,代码大小和性能优化之间仍然是有着紧密关联的。", 29 | "images": [ 30 | "http://img.gank.io/b530a4e3-9ec8-4166-8c8f-fdd29e11c0d5", 31 | "http://img.gank.io/8b3cf104-4b27-4dbd-8407-769d622ca077" 32 | ], 33 | "publishedAt": "2016-11-23T11:27:52.847Z", 34 | "source": "web", 35 | "type": "Android", 36 | "url": "https://realm.io/cn/news/360andev-jake-wharton-java-hidden-costs-android/", 37 | "used": true, 38 | "who": "Chen Mulong" 39 | } 40 | ] 41 | } 42 | ``` 43 | 44 | ### Product 45 | 46 | ![Artboard](/materials/Artboard.png) 47 | 48 | Take a look on the design work. It's created in Sketch but in case you don't have Sketch installed, png file will also be provided. This app consists of these functions which require you to implement 49 | - a Toolbar with tabs(Android, iOS, 前端), users can switch between these tabs to view posts under a specific topic 50 | - a List to display all kinds of posts 51 | - pure text 52 | - text with images(users can swipe to view images) 53 | - text with GIF(nice to be displayed as GIF, but you may consider it as a jpeg) 54 | - pull down to refresh 55 | - pull up(in the end of the List) to load history(older) posts 56 | - only load the image as needed, make sure users don't have to download the images every time 57 | - click on the item to view detailed information in a WebView 58 | - cache all the posts in database so that you can display data when network is unavailable 59 | 60 | #### Sketch Measure 61 | 62 | You might need to look up the specific `colors`/`paddings`/`margins`/`font sizes` in [Sketch Measure](/Sketch\ Measure/index.html). 63 | 64 | > Tip: Download this project and open `Sketch Measure/index.html` in your browser. 65 | 66 | ![Sketch Measure](/materials/Sketch-Measure.png) 67 | 68 | ## Hints 69 | 70 | - Communicate with your interviewer when you are confused. 71 | - Use Git to manage the source code and commit as much as you could with a **CLEAR** history. 72 | - Comment your code when you think it's necessary. 73 | - Use clear method and variable names. 74 | - Use Material Design support library and find the icons you need here [https://material.io/icons](https://material.io/icons). 75 | - Feel free to use any third-party library you're familiar with, but choose wisely. 76 | - Try to polish your code as much as possible. 77 | - Impress your interviewer. 78 | 79 | ## pull request 80 | 81 | Once you've finished, you may launch a pull request to this project. 82 | 83 | **To make us understand your purpose of pull request, just mark a label on it.** 84 | 85 | ### Use labels to mark you purpose 86 | 87 | - #for-fun 88 | - #for-interview 89 | 90 | > Tips: You can find the labels on the right panel in your pull-request/issue editing page. If you don't have the permission then leave a message there and we will set the right label for you. 91 | 92 | ## Acknowledgements 93 | 94 | - [gank.io](http://gank.io) 95 | 96 | [gank.io](http://gank.io) is a platform built by [daimajia](https://github.com/daimajia), famous for it's daily high-quality recommendations. We are truly grateful for using its open API. 97 | 98 | - [goeasyway](https://github.com/goeasyway) 99 | 100 | The idea of this kind of interview was stole from a foreign company, first showed up in this blog [post](http://www.jianshu.com/p/3178e527ec76) by [goeasyway](https://github.com/goeasyway). 101 | -------------------------------------------------------------------------------- /Sketch Measure/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Spec Export - Sketch Measure 2.3 8 | 190 | 1423 | 1424 | 1425 | 1426 | 1427 | 1428 | -------------------------------------------------------------------------------- /Sketch Measure/links/gankio-gankio.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Sketch Measure/links/gankio-webview.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Sketch Measure/preview/gankio-gankio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanhoo/Android-Proficiency-Exercise/00bafe9e66b80355ac90879be4c6840b93b0cd1c/Sketch Measure/preview/gankio-gankio.png -------------------------------------------------------------------------------- /Sketch Measure/preview/gankio-webview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanhoo/Android-Proficiency-Exercise/00bafe9e66b80355ac90879be4c6840b93b0cd1c/Sketch Measure/preview/gankio-webview.png -------------------------------------------------------------------------------- /gank.io.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanhoo/Android-Proficiency-Exercise/00bafe9e66b80355ac90879be4c6840b93b0cd1c/gank.io.sketch -------------------------------------------------------------------------------- /materials/Artboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanhoo/Android-Proficiency-Exercise/00bafe9e66b80355ac90879be4c6840b93b0cd1c/materials/Artboard.png -------------------------------------------------------------------------------- /materials/Sketch-Measure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanhoo/Android-Proficiency-Exercise/00bafe9e66b80355ac90879be4c6840b93b0cd1c/materials/Sketch-Measure.png --------------------------------------------------------------------------------