From 36c6191b1e5a6e4ecfe885bcd9e78f267ec385ec Mon Sep 17 00:00:00 2001 From: Nathan Esquenazi Date: Thu, 21 Jul 2016 11:06:25 -0700 Subject: [PATCH 01/13] Update to latest guides commit --- guides | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guides b/guides index 876b9e277..6c236e883 160000 --- a/guides +++ b/guides @@ -1 +1 @@ -Subproject commit 876b9e2779111f1241d889f7bc849dfe25fd6e1d +Subproject commit 6c236e883cc70912ccdd859173050fc147d409f1 From c70c4e26942d26e5b90adc240504073fca7a2ecd Mon Sep 17 00:00:00 2001 From: Kasra Rahjerdi Date: Fri, 12 Aug 2016 11:12:37 -0600 Subject: [PATCH 02/13] Minor typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 74082bec8..2a0c66716 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ We have guides for everyone whether you are **beginner, intermediate or advanced ## Motivation -Ever been **frustrated finding information on outdated one-off blog posts and tutorials** that has since become irrelevant? How many times were you googling only to find your answer only on a **2 year old StackOverflow post**? We believe there's got to be a better way. Why not have the community work together to create useful and detailed documentation for every aspect of Android (or any platform)? There's absolutely no reason that we should have to make do with outdated, vague or un-editable content anymore. +Ever been **frustrated finding information on outdated one-off blog posts and tutorials** that has since become irrelevant? How many times were you googling only to find your answer only on a **2 year old Stack Overflow post**? We believe there's got to be a better way. Why not have the community work together to create useful and detailed documentation for every aspect of Android (or any platform)? There's absolutely no reason that we should have to make do with outdated, vague or un-editable content anymore. Read about our [mission to change the way engineers learn new technologies](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal) and we would love for you to [get involved](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal#how-do-i-help)! In addition, we are a fledgling startup so if you like this guide and what we are trying to do, please consider following us on twitter [@codepath](https://twitter.com/codepath)! From 319bb660d978b442bfe0dad984e39241fa9cb60d Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Thu, 17 Nov 2016 11:25:52 -0800 Subject: [PATCH 03/13] Add dagger 2 subcomponent builder diagram. --- images/subcomponent_builders.gliffy | 1 + images/subcomponent_builders.png | Bin 0 -> 31400 bytes 2 files changed, 1 insertion(+) create mode 100644 images/subcomponent_builders.gliffy create mode 100644 images/subcomponent_builders.png diff --git a/images/subcomponent_builders.gliffy b/images/subcomponent_builders.gliffy new file mode 100644 index 000000000..0fee8869f --- /dev/null +++ b/images/subcomponent_builders.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":620,"height":380,"nodeIndex":279,"autoFit":true,"exportBorder":false,"gridOn":true,"snapToGrid":true,"drawingGuidesOn":true,"pageBreaksOn":false,"printGridOn":false,"printPaper":"LETTER","printShrinkToFit":false,"printPortrait":true,"maxWidth":5000,"maxHeight":5000,"themeData":null,"imageCache":null,"viewportType":"default","fitBB":{"min":{"x":20,"y":10},"max":{"x":620,"y":380}},"printModel":{"pageSize":"a4","portrait":false,"fitToOnePage":false,"displayPageBreaks":false},"objects":[{"x":32.5,"y":45.0,"rotation":0.0,"id":170,"width":100.0,"height":75.0,"uid":"com.gliffy.shape.uml.uml_v2.class.package","order":0,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":true,"heightInfo":[{"magnitude":1,"id":171},{"magnitude":1,"id":174}],"minHeight":0.0,"growParent":false,"padding":0.0}}]},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":171,"width":75.0,"height":18.0,"uid":null,"order":2,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":false,"heightInfo":[{"magnitude":1,"id":172}],"minHeight":0.0,"growParent":true,"padding":0.0}}]},"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":172,"width":75.0,"height":18.0,"uid":null,"order":5,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

 

","tid":null,"valign":"top","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":0.0,"y":18.0,"rotation":0.0,"id":173,"width":100.0,"height":57.0,"uid":null,"order":7,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":false,"heightInfo":[{"magnitude":1,"id":170},{"magnitude":-1,"id":171}],"minHeight":0.0,"growParent":false,"padding":0.0}},{"type":"PositionConstraint","PositionConstraint":{"nodeId":171,"px":0.0,"py":1.0,"xOffset":0.0,"yOffset":0.0}}]},"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":174,"width":100.0,"height":30.0,"uid":null,"order":10,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Application

","tid":null,"valign":"top","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":430.0,"y":317.5,"rotation":0.0,"id":200,"width":170.0,"height":40.0,"uid":"com.gliffy.shape.uml.uml_v2.deployment.frame","order":11,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":true,"heightInfo":[{"magnitude":1,"id":201}],"minHeight":30.0,"growParent":false,"padding":0.0}},{"type":"WidthConstraint","WidthConstraint":{"isMin":true,"widthInfo":[{"magnitude":1,"id":201}],"minWidth":50.0,"growParent":false,"padding":0.0}}]},"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.no_fill_v1","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":201,"width":147.0,"height":18.0,"uid":null,"order":13,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":false,"heightInfo":[{"magnitude":1,"id":202}],"minHeight":0.0,"growParent":true,"padding":0.0}},{"type":"WidthConstraint","WidthConstraint":{"isMin":false,"widthInfo":[{"magnitude":1,"id":202}],"minWidth":0.0,"growParent":true,"padding":5.0}}]},"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.frame.uml_v2","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":202,"width":142.0,"height":18.0,"uid":null,"order":18,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"right","paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Subomponent (Activity)

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":0.0,"y":15.0,"rotation":0.0,"id":203,"width":1.3159787640275165,"height":22.0,"uid":null,"order":15,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":false,"heightInfo":[{"magnitude":1,"id":200},{"magnitude":-1,"id":201}],"minHeight":20.0,"growParent":false,"padding":0.0}}]},"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.no_fill_no_line_v1","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":452.0,"y":60.0,"rotation":0.0,"id":204,"width":130.0,"height":60.0,"uid":"com.gliffy.shape.uml.uml_v2.class.simple_class","order":19,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":1.8571428571428572,"y":0.0,"rotation":0.0,"id":205,"width":126.28571428571429,"height":28.0,"uid":null,"order":21,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Activity / Service / etc.

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":166.0,"y":85.0,"rotation":0.0,"id":206,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.component.realization","order":22,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":170,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":270,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,2.0","startArrow":0,"endArrow":6,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-33.5,-2.5],[-3.1552219392602012,-2.5],[27.189556121479598,-2.5],[57.534334182219396,-2.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":276,"width":36.0,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"both","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":5,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

builds

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":20.0,"y":10.0,"rotation":0.0,"id":227,"width":600.0,"height":370.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":25,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"none","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":465.0,"y":210.0,"rotation":0.0,"id":238,"width":100.0,"height":35.0,"uid":"com.gliffy.shape.uml.uml_v2.class.simple_class","order":26,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":1.4285714285714288,"y":0.0,"rotation":0.0,"id":240,"width":97.14285714285715,"height":14.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Builder

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":453.0,"y":264.0,"rotation":0.0,"id":241,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.component.realization","order":29,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":238,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":200,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,2.0","startArrow":0,"endArrow":4,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[62.0,-19.0],[62.0,5.166666666666686],[62.0,29.333333333333314],[62.0,53.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":242,"width":44.0,"height":14.0,"uid":null,"order":31,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"both","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":0.49176220407782145,"linePerpValue":0.0,"cardinalityType":null,"html":"

creates

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":250.0,"y":207.5,"rotation":0.0,"id":243,"width":100.0,"height":35.0,"uid":"com.gliffy.shape.uml.uml_v2.class.simple_class","order":32,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":1.4285714285714288,"y":0.0,"rotation":0.0,"id":244,"width":97.14285714285715,"height":28.0,"uid":null,"order":34,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Module (binder)

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":776.0,"y":229.0,"rotation":0.0,"id":245,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.component.realization","order":35,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":204,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":238,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,2.0","startArrow":0,"endArrow":4,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-259.0,-109.0],[-259.0,-78.9925935068616],[-259.0,-48.98518701372322],[-259.0,-18.977780520584815]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":246,"width":44.0,"height":28.0,"uid":null,"order":37,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"both","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":0.49176220407782145,"linePerpValue":0.0,"cardinalityType":null,"html":"

adds

module

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":507.0,"y":552.0,"rotation":0.0,"id":253,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.deployment.dependency","order":41,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":243,"py":0.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":262,"py":1.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,2.0","startArrow":0,"endArrow":4,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-207.0,-344.5],[-207.0,-373.66666666666663],[-207.0,-402.83333333333337],[-207.0,-432.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":254,"width":50.0,"height":28.0,"uid":null,"order":"auto","lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"both","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":0.49142857142857144,"linePerpValue":0.0,"cardinalityType":null,"html":"

provides

builder

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":-138.0,"y":610.0,"rotation":0.0,"id":257,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.deployment.dependency","order":44,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":243,"py":1.0,"px":0.5}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":200,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,2.0","startArrow":0,"endArrow":6,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[438.0,-367.5],[438.0,-272.5],[568.0,-272.5]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":258,"width":181.0,"height":14.0,"uid":null,"order":46,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"both","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":0.2222222222222222,"linePerpValue":0.0,"cardinalityType":null,"html":"

@Module(subcomponents={ ... })

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":802.0,"y":294.0,"rotation":0.0,"id":259,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.component.realization","order":47,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":243,"py":0.5,"px":1.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":238,"py":0.5,"px":0.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,2.0","startArrow":0,"endArrow":4,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-452.0,-69.0],[-413.6576097655755,-69.0],[-375.31521953115106,-69.0],[-336.97282929672656,-69.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":260,"width":44.0,"height":14.0,"uid":null,"order":49,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"both","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":0.49176220407782145,"linePerpValue":0.0,"cardinalityType":null,"html":"

creates

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":240.0,"y":60.0,"rotation":0.0,"id":262,"width":120.0,"height":60.0,"uid":"com.gliffy.shape.uml.uml_v2.class.simple_class","order":50,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#999999","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":true,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":1.7142857142857146,"y":0.0,"rotation":0.0,"id":263,"width":116.57142857142858,"height":42.0,"uid":null,"order":52,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Map

(builder class ->

builder)

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":-30.0,"y":620.0,"rotation":0.0,"id":266,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.deployment.dependency","order":56,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":204,"py":0.5,"px":0.0}},"endConstraint":{"type":"EndPositionConstraint","EndPositionConstraint":{"nodeId":262,"py":0.5,"px":1.0}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"8.0,2.0","startArrow":0,"endArrow":6,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[482.0,-530.0],[451.3333333333333,-530.0],[420.6666666666667,-530.0],[390.0,-530.0]],"lockSegments":{},"ortho":true}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":267,"width":30.0,"height":14.0,"uid":null,"order":58,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"both","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":0.41304347826086957,"linePerpValue":0.0,"cardinalityType":null,"html":"

uses

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":223.5,"y":30.0,"rotation":0.0,"id":270,"width":159.99999999999997,"height":110.0,"uid":"com.gliffy.shape.uml.uml_v2.deployment.frame","order":59,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":true,"heightInfo":[{"magnitude":1,"id":271}],"minHeight":30.0,"growParent":false,"padding":0.0}},{"type":"WidthConstraint","WidthConstraint":{"isMin":true,"widthInfo":[{"magnitude":1,"id":271}],"minWidth":50.0,"growParent":false,"padding":0.0}}]},"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.no_fill_v1","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"linkMap":[],"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":271,"width":154.0,"height":18.0,"uid":null,"order":61,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":false,"heightInfo":[{"magnitude":1,"id":272}],"minHeight":0.0,"growParent":true,"padding":0.0}},{"type":"WidthConstraint","WidthConstraint":{"isMin":false,"widthInfo":[{"magnitude":1,"id":272}],"minWidth":0.0,"growParent":true,"padding":5.0}}]},"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.frame.uml_v2","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"children":[{"x":0.0,"y":0.0,"rotation":0.0,"id":272,"width":149.0,"height":18.0,"uid":null,"order":66,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"right","paddingTop":2,"paddingRight":5,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

Component (Application)

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"},{"x":0.0,"y":15.0,"rotation":0.0,"id":273,"width":1.0389610389610389,"height":92.0,"uid":null,"order":63,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[{"type":"HeightConstraint","HeightConstraint":{"isMin":false,"heightInfo":[{"magnitude":1,"id":270},{"magnitude":-1,"id":271}],"minHeight":20.0,"growParent":false,"padding":0.0}}]},"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.no_fill_no_line_v1","strokeWidth":1.0,"strokeColor":"#000000","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":4.0,"shadowY":4.0}},"children":[],"hidden":false,"layerId":"pTQxIOAggawI"}],"hidden":false,"layerId":"pTQxIOAggawI"}],"layers":[{"guid":"pTQxIOAggawI","order":0,"name":"Layer 0","active":true,"locked":false,"visible":true,"nodeIndex":67}],"shapeStyles":{"com.gliffy.shape.basic.basic_v1.default":{"fill":"none","stroke":"#333333","strokeWidth":2,"opacity":1}},"lineStyles":{"global":{"stroke":"#000000","strokeWidth":2,"endArrow":6,"orthoMode":1}},"textStyles":{"global":{"italic":false,"face":"Arial","size":"14px","color":"#999999","bold":true}}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.uml.uml_v2.class","com.gliffy.libraries.uml.uml_v2.sequence","com.gliffy.libraries.uml.uml_v2.activity","com.gliffy.libraries.uml.uml_v2.state_machine","com.gliffy.libraries.uml.uml_v2.deployment","com.gliffy.libraries.uml.uml_v2.component","com.gliffy.libraries.uml.uml_v2.use_case","com.gliffy.libraries.erd.erd_v1.default","com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.images"],"lastSerialized":1479415910113,"analyticsProduct":"Confluence"},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/images/subcomponent_builders.png b/images/subcomponent_builders.png new file mode 100644 index 0000000000000000000000000000000000000000..ea713d9b72ebd4e54fe9351ff5383acf08ca9d1f GIT binary patch literal 31400 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�F9JuT0JMr#ibkB90MMC#}2=-pBaiOtPg)63oO9uikpyzEP`Ha9== z?~FH$q8b)!lVX(_g*Fk+W@2VS1nyDp`==+=tMKQ~)iY^-&%Q%IIBk#YymR!<4+uzK zhN&p}I?&5cz(V=+Q1n0${HgZVK;)l0y|$3hT(d$FuA2s8bVq{@eg(BZI+s7T!)c^k>L%ND(DE1<)rZ&`=W+WQV-} zwgj8{XSz}|_2FTS=ZvOn{b?B!^6JkG2t=sBNphr@Klf*(3CIQdzb`?Kl?jo*SUUT6 enE$t~5%&@^Lj4(x(|Hm2Iek*+#Oq@=A^!_uxZ2DB literal 0 HcmV?d00001 From df0ac97f8e73936fc2ccb6720279869caadef4ce Mon Sep 17 00:00:00 2001 From: Nathan Esquenazi Date: Fri, 16 Dec 2016 12:54:42 -0800 Subject: [PATCH 04/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2a0c66716..44f1a637b 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ If you are an experienced engineer (2+ years of professional experience in softw We need your help making the guides even better. In particular, here are the easiest ways to contribute: -1. **Update Guides.** Review existing guides and update outdated content, add troubleshooting tips or add/update images +1. **Update Guides.** Review existing guides and update outdated content, add tips or add/update images 2. **Fill Out Guides.** Find guides that are [simply stubs](https://github.com/codepath/android_guides/issues/2) and fill them out with content. 3. **Create New Guides.** Review the [missing topics list](https://github.com/codepath/android_guides/issues/2) and create new topic guides. From af65894e4dda9acdfe840fef1e0ffa668fd42eeb Mon Sep 17 00:00:00 2001 From: flekken Date: Mon, 27 Aug 2018 13:49:30 +0200 Subject: [PATCH 05/13] Update testing link in README.md #336 The testing link in the README.md was pointing to the old wiki page. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 44f1a637b..79c4e253c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Welcome to the open-source [Codepath](http://codepath.com) Android Cliffnotes! O [![CodePath](http://i.imgur.com/XgxWfyF.png)](http://codepath.com) -We have guides for everyone whether you are **beginner, intermediate or advanced**. Want to learn how to [use the ActionBar](https://github.com/codepath/android_guides/wiki/Defining-The-ActionBar) or the [ins and outs of fragments](https://github.com/codepath/android_guides/wiki/Creating-and-Using-Fragments)? We got that. Want to learn [about testing](https://github.com/codepath/android_guides/wiki/Android-Unit-and-Integration-testing) or how to [build flexible user interfaces for multiple devices](https://github.com/codepath/android_guides/wiki/Flexible-User-Interfaces)? We got you covered. We don't waste time with the "theoretical approach" from a book. We cover **exactly the things we use every day** as we are developing apps for contracts. +We have guides for everyone whether you are **beginner, intermediate or advanced**. Want to learn how to [use the ActionBar](https://github.com/codepath/android_guides/wiki/Defining-The-ActionBar) or the [ins and outs of fragments](https://github.com/codepath/android_guides/wiki/Creating-and-Using-Fragments)? We got that. Want to learn [about testing](https://github.com/codepath/android_guides/wiki/Android-Testing-Options) or how to [build flexible user interfaces for multiple devices](https://github.com/codepath/android_guides/wiki/Flexible-User-Interfaces)? We got you covered. We don't waste time with the "theoretical approach" from a book. We cover **exactly the things we use every day** as we are developing apps for contracts. **Need Help?** Please join the [google groups](https://groups.google.com/forum/#!forum/codepath-android-guides) for these guides where you can post related questions. From 12b75a54bd51a8d0171dae8a18a624c62d4eb9f9 Mon Sep 17 00:00:00 2001 From: Nathan Esquenazi Date: Fri, 21 Dec 2018 10:33:48 -0800 Subject: [PATCH 06/13] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 79c4e253c..efaa5bd51 100644 --- a/README.md +++ b/README.md @@ -50,3 +50,4 @@ community members including: * [Trevor Elkins](https://github.com/trevor-e) * [Adrian Romero](https://github.com/romeroadrian) * [Aaron Fleshner](https://github.com/adfleshner) + * [Steven Dobek](https://github.com/sdobek) From 7c214005b808a08e5677667649e77ce91cde987c Mon Sep 17 00:00:00 2001 From: ABHISHEK AMRUTE <41743655+ABHISHEK-AMRUTE@users.noreply.github.com> Date: Sun, 6 Oct 2019 12:26:40 +0530 Subject: [PATCH 07/13] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index efaa5bd51..bfcbdd4c1 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,13 @@ We have guides for everyone whether you are **beginner, intermediate or advanced Ever been **frustrated finding information on outdated one-off blog posts and tutorials** that has since become irrelevant? How many times were you googling only to find your answer only on a **2 year old Stack Overflow post**? We believe there's got to be a better way. Why not have the community work together to create useful and detailed documentation for every aspect of Android (or any platform)? There's absolutely no reason that we should have to make do with outdated, vague or un-editable content anymore. -Read about our [mission to change the way engineers learn new technologies](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal) and we would love for you to [get involved](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal#how-do-i-help)! In addition, we are a fledgling startup so if you like this guide and what we are trying to do, please consider following us on twitter [@codepath](https://twitter.com/codepath)! +Read about our [mission to change the way engineers learn new technologies](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal) and we would love for you to [get involved](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal#how-do-i-help)! In addition, we are a fledgeling startup so if you like this guide and what we are trying to do, please consider following us on twitter [@codepath](https://twitter.com/codepath)! ## Live in San Francisco? Located in the San Francisco Bay Area and interested in learning with others in a more structured program? Check out our local [Android](http://www.meetup.com/Learning-Android-Development) or [iOS](http://www.meetup.com/Learning-iOS-Development-SF/) meetup events. We have free evening events and at-cost 1-day workshops to make learning social and connect you with others passionate about mobile. -If you are an experienced engineer (2+ years of professional experience in software development) and serious about learning Android, check out our [free evening 8-week Android bootcamp](http://codepath.com/androidbootcamp). Learn how to build mobile apps while collaborating with other engineers and designers. Work on solving important problems for non-profits with our free 8-week accelerated evening mobile bootcamp. [Learn more and apply here](http://courses.codepath.com/snippets/intro_to_android/about_bootcamp). +If you are an experienced engineer (2+ years of professional experience in software development) and serious about learning Android, check out our [free evening 8-week Android bootcamp](http://codepath.com/androidbootcamp). Learn how to build mobile apps while collaborating with other engineers and designers. Work on solving important problems for non-profits with our free 8-week accelerated evening mobile boot camp. [Learn more and apply here](http://courses.codepath.com/snippets/intro_to_android/about_bootcamp). ## We Need Your Help! @@ -28,7 +28,7 @@ We need your help making the guides even better. In particular, here are the eas 2. **Fill Out Guides.** Find guides that are [simply stubs](https://github.com/codepath/android_guides/issues/2) and fill them out with content. 3. **Create New Guides.** Review the [missing topics list](https://github.com/codepath/android_guides/issues/2) and create new topic guides. -We [maintain a master missing topics list](https://github.com/codepath/android_guides/issues/2) that contains the most important missing topics. Also look for items in the cliffnotes with the **Needs Attention** mark which indicates the guide needs some love. If you see a topic you'd like added, please check the [issues](https://github.com/codepath/android_guides/issues) for this repository to let us know. +We [maintain a master missing topics list](https://github.com/codepath/android_guides/issues/2) that contains the most important missing topics. Also, look for items in the cliff notes with the **Needs Attention** mark which indicates the guide needs some love. If you see a topic you'd like added, please check the [issues](https://github.com/codepath/android_guides/issues) for this repository to let us know. If you are interested in contributing to our guides, please check out our [contribution guidelines](https://github.com/codepath/android_guides/wiki/Contributing-Guidelines) first. From bb381c0c425c3e8cffb83659147cce4c0af6019c Mon Sep 17 00:00:00 2001 From: muigai_david <45118084+Sammug@users.noreply.github.com> Date: Wed, 30 Oct 2019 13:29:43 +0300 Subject: [PATCH 08/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bfcbdd4c1..ade7b48e6 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ We have guides for everyone whether you are **beginner, intermediate or advanced ## Motivation -Ever been **frustrated finding information on outdated one-off blog posts and tutorials** that has since become irrelevant? How many times were you googling only to find your answer only on a **2 year old Stack Overflow post**? We believe there's got to be a better way. Why not have the community work together to create useful and detailed documentation for every aspect of Android (or any platform)? There's absolutely no reason that we should have to make do with outdated, vague or un-editable content anymore. +Ever been **frustrated finding information on outdated one-off blog posts and tutorials** that has since become irrelevant? How many times have you been googling only to find your answer on a **2 year old Stack Overflow post**? We believe there's got to be a better way. Why not have a community to work together in creating useful and detailed documentation for every aspect of Android development(or any platform)? Read about our [mission to change the way engineers learn new technologies](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal) and we would love for you to [get involved](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal#how-do-i-help)! In addition, we are a fledgeling startup so if you like this guide and what we are trying to do, please consider following us on twitter [@codepath](https://twitter.com/codepath)! From e4ee160dd7c58950ce40e5c9b8f13921ec5af718 Mon Sep 17 00:00:00 2001 From: H3RSKO <34112131+H3RSKO@users.noreply.github.com> Date: Sat, 15 Aug 2020 23:14:40 -0400 Subject: [PATCH 09/13] Updated Readme Fixed typo: Changed "fledgeling" to "fledgling" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ade7b48e6..ac440c14f 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ We have guides for everyone whether you are **beginner, intermediate or advanced Ever been **frustrated finding information on outdated one-off blog posts and tutorials** that has since become irrelevant? How many times have you been googling only to find your answer on a **2 year old Stack Overflow post**? We believe there's got to be a better way. Why not have a community to work together in creating useful and detailed documentation for every aspect of Android development(or any platform)? -Read about our [mission to change the way engineers learn new technologies](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal) and we would love for you to [get involved](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal#how-do-i-help)! In addition, we are a fledgeling startup so if you like this guide and what we are trying to do, please consider following us on twitter [@codepath](https://twitter.com/codepath)! +Read about our [mission to change the way engineers learn new technologies](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal) and we would love for you to [get involved](https://github.com/codepath/android_guides/wiki/The-CodePath-Goal#how-do-i-help)! In addition, we are a fledgling startup so if you like this guide and what we are trying to do, please consider following us on twitter [@codepath](https://twitter.com/codepath)! ## Live in San Francisco? From 1739df2d5d45dd8cfa024b4da2497c638242fde5 Mon Sep 17 00:00:00 2001 From: Ikko Ashimine Date: Sun, 1 Aug 2021 00:25:03 +0900 Subject: [PATCH 10/13] Fix URL in README.md http -> https --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac440c14f..af91dfc30 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ If you are interested in contributing to our guides, please check out our [contr ## Contributors -These guides were originally created and adapted by [Nathan Esquenazi](http://github.com/nesquena) +These guides were originally created and adapted by [Nathan Esquenazi](https://github.com/nesquena) as a part of our [CodePath](http://codepath.com) training and bootcamps. We have also had contributions from many community members including: From 25416f8089dd49c8d028074583416d6edf504159 Mon Sep 17 00:00:00 2001 From: CPZackParker <131204271+CPZackParker@users.noreply.github.com> Date: Tue, 16 May 2023 11:24:20 -0700 Subject: [PATCH 11/13] Minor change to text to test web hook --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af91dfc30..e1c27615a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # CodePath Android Cliffnotes -Welcome to the open-source [Codepath](http://codepath.com) Android Cliffnotes! Our goal is to become the **central crowdsourced resource** for complete and up-to-date Android content and tutorials. [Just take me to the notes](https://github.com/codepath/android_guides/wiki#getting-started)! +Welcome to the open-source [Codepath](http://codepath.com) Android Cliffnotes! Our goal is to become the **central crowdsourced resource** for complete and up-to-date Android tutorials and content. [Just take me to the notes](https://github.com/codepath/android_guides/wiki#getting-started)! [![CodePath](http://i.imgur.com/XgxWfyF.png)](http://codepath.com) From b383104b3d32463a8bf1e2dde9bd61aee1b51f3d Mon Sep 17 00:00:00 2001 From: CPZackParker <131204271+CPZackParker@users.noreply.github.com> Date: Tue, 16 May 2023 11:30:41 -0700 Subject: [PATCH 12/13] Undid test change --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e1c27615a..af91dfc30 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # CodePath Android Cliffnotes -Welcome to the open-source [Codepath](http://codepath.com) Android Cliffnotes! Our goal is to become the **central crowdsourced resource** for complete and up-to-date Android tutorials and content. [Just take me to the notes](https://github.com/codepath/android_guides/wiki#getting-started)! +Welcome to the open-source [Codepath](http://codepath.com) Android Cliffnotes! Our goal is to become the **central crowdsourced resource** for complete and up-to-date Android content and tutorials. [Just take me to the notes](https://github.com/codepath/android_guides/wiki#getting-started)! [![CodePath](http://i.imgur.com/XgxWfyF.png)](http://codepath.com) From 40de7638a14149e43c5bf3c214836db0185c4f6d Mon Sep 17 00:00:00 2001 From: JasonnnW3000 Date: Tue, 31 Dec 2024 13:04:36 -0500 Subject: [PATCH 13/13] Update LICENSE.md, fix license year Signed-off-by: JasonnnW3000 --- LICENSE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE.md b/LICENSE.md index f523b6e5d..6997de162 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015 CodePath, Inc. +Copyright (c) 2025 CodePath, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal