-
Notifications
You must be signed in to change notification settings - Fork 7
/
meetup1.html
284 lines (236 loc) · 17.6 KB
/
meetup1.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
<!DOCTYPE HTML>
<!--
Editorial by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
<head>
<title>HASHes</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<!--[if lte IE 8]><script src="assets/js/ie/html5shiv.js"></script><![endif]-->
<link rel="stylesheet" href="assets/css/main.css" />
<!--[if lte IE 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]-->
<!--[if lte IE 8]><link rel="stylesheet" href="assets/css/ie8.css" /><![endif]-->
</head>
<body>
<!-- Wrapper -->
<div id="wrapper">
<!-- Main -->
<div id="main">
<div class="inner">
<!-- Header -->
<header id="header">
<a href="index.html" class="logo"><strong>HASHes</strong></a>
<ul class="icons">
<li><a href="#touch" class="icon fa-google"><span class="label">Facebook</span></a></li>
<li><a href="https://fb.com/HASHesJMI" class="icon fa-facebook"><span class="label">Facebook</span></a></li>
<li><a href="#" class="icon fa-github"><span class="label">Github</span></a></li>
<li><a href="#" class="icon fa-slack"><span class="label">Slack</span></a></li>
</ul>
</header>
<!-- Section -->
<section>
<header class="major" id="more">
<h2>Android Development Meetup</h2>
</header>
<p>Hi guys, hope you liked the session on Android Development. This blog would help you get started with getting your hands dirty with some actual development, with resources and basic knowledge about App Development.</p>
<p>Mobile App Development can be categorized into two categories-
<br>
<strong>Native</strong> : The one using Android studio, eclipse IDEs. App size is much lesser.
<br>
<strong>Hybrid</strong> : Using platforms like React, Ionic, Game engines, etc. We need it when your project requires lots of other things other than being in Android paradigm, like AR. If you write code in Android studio(Java) you’ll end up write hundreds lines for making just a cube using OpenGL(open graphics library). So we use lets say game engines, which provides you with built-in rendering capabilities and you can import 3d models easily.</p>
<p>We are not covering Hybrid App Development using JavaScript and its frameworks (remember, JavaScript != Java...JavaScript is to Java is as Carpet is to Car) rather, we'd be covering Native Android App Development, using Java. Confusing JavaScript with Java is one of the 7 sins a developer should never commit, the other six, you’d learn with time.</p>
<div class="image"><img src="images/javascript.jpg" height="300px" width="300px" alt="" />
<br>
<header class="major" id="more">
<h4>Why Android Development?</h4>
</header>
<p>Most of you must have been reading this post on your Android Smartphone. Every startup, every tech company, every MNC, have their own Android Application. Then there are a market for games and other apps. Android is the most popular mobile OS in the market, and the most popular OS that gadgets run on. It's not just smartphones, smartwatches, Android TV, tablets... Android is everywhere but seriously there are not much developers out there in the market. That opens up a lot of job opportunities for developers. Though there are a lot of web developers and the domain is getting saturated, there's a dearth of them when it comes to Android.
So, why Android? Because JOBS!
</p>
<header class="major" id="more">
<h4> What all do you need to learn to become an Android Developer?</h4>
</header>
<p><strong>1. Java:</strong> Java as a language is needed for android development. You should know basics of it atleast to get started, plus the OOPS concepts are important to understand the things. The best way to learn Java is to become old school for some time, pick up a book that goes by the name Herbert Schieldt (available in the library). It is the bible of Java. Do not dive into the depths, as it’s not a prerequisite to get started but getting handy with the OOPS concepts like Inheritance, function overloading, constructors, encapsulation, polymorphism, interfaces, Multithreading etc would be beneficial as you will be using these concepts as you advance. In case, you’re not comfortable with the book, just type “online java course” on youtube, and take any of the lectures, say for example, mysirg.com videos, they’re in hindi, but does cover all of these topics.</p>
<p><strong>2. XML:</strong> It’s just like you type HTML, CSS in web. Don’t worry, you’ll get used to it if you develop more often and for a start, you can use drag and drop feature to build a simple User Interface.
</p>
<p><strong>3. Data Persistence:</strong> In Android, we have two ways to persist data, SQLite and SharedPreferences, both of which are a cakewalk if you know basic querying, which again you wouldn't take more than 2 days to learn. Source:<a href="https://in.udacity.com/course/android-basics-data-storage--ud845" alt="">This course on udacity.</a>
</p>
<p><strong>4. Networking:</strong> Making the app connect to the internet, and make requests. Although, you can start with OKHttp client, but later on you should know how to use Volley and Retrofit2 libraries, as you’ll use these 2 in the industry.<a href="https://in.udacity.com/course/android-basics-networking--ud843" alt=""> This course on udacity </a>uses Okhttp , which is the naive approach, and do not get used in industry. But just go though as you’ll get to learn the internals.
</p>
<p><strong>5. Backend (Not needed for beginner developers, but will be if you want to explore more and make our own APIs, this thing will make you full-stack):</strong> Once you are handy with the first three points, you may also need a backend for your application. JavaScript takes over from here. I would personally recommend you to take this MEAN (MongoDB, Express, Angular, Node) stack development course on<a href="https://www.coursera.org/learn/server-side-nodejs" alt=""> coursera.org .</a> Don’t get overwhelmed by lots of new terms, you’ll learn on the only during this course, as one would replace other in order to avoid complexity.</p>
<header class="major" id="more">
<h4>Resources:</h4>
</header>
<p>Make sure than when you follow a tutorial, you don't necessarily write or understand all the code yourself but what's more important is that you understand the concept that is being covered.</p>
<p>Feel free to explore more options to find the tutorial that suits you the best. Most of the popular educational websites for programmers have courses related to Android Development.<strong> Udacity’s online course <a href="https://in.udacity.com/course/new-android-fundamentals--ud851" alt="">“Developing Android Applications”</a> is the most recommended one.</strong></p>
<p>Then, once you are off the mark, you will always get stuck at things, you need to know where to fall back to in such a scenario, because regardless of how pro you are, you always get stuck at some point, because everyone else’s code does what they tell it to, yours is always a rebel. Desperation steps in, which slowly transitions into depression and you wanna break your laptop into pieces with a baseball bat. But you know what, never do that… Just know where to seek help from, and voila!</p>
<div class="image"><img src="images/programmer.jpg" align="center" height="300px" width="300px" alt="" />
<br>
<p>HASHes group will sure come in handy, but the best platform to get your questions answered is <a href="https://stackoverflow.com/"> stackoverflow.com </a> (heads up, they are not going to spoon feed you, and do not get discouraged if you get downvoted. Over the course of time, you'd learn how to ask and answer on stackoverflow).</p>
<p>The next best option is Google Plus group: <a href="https://plus.google.com/communities/105153134372062985968" alt=""> Android Development Community</a><p>
<p>You have some of the best developers and even Google's own employees helping others with their queries on G+ and StackOverflow.</p>
<p>For tutorials / code example on any specific feature, you can do a simple google search. One of the most popular websites is <a href="https://www.tutorialspoint.com/index.htm" alt=""> tutorialspoint.com</a></p>
<header class="major" id="more">
<h4> So when can we say that we have learnt Android Dev?</h4>
</header>
<p>There would come a time when you'd no longer need full time guidance. you'd be good enough to explore new options yourself, learn. In fancy words, when you have learnt to learn. YOU SHOULD BE ABLE TO SOLVE YOU DOUBTS/ BUGS ON YOUR OWN.</p>
<header class="major" id="more">
<h4> What next?</h4>
</header>
<p>Internships in startups(endless, at good pay even), GSoC, Hackathons, Open Source projects on Github... there are a lot of options.</p>
<p>Hopefully, we will have a hands on Workshop on Android Development, where we will help you develop a basic application. Stay tuned, HASHes has a lot more to offer.</p>
<p><a href="https://www.codementor.io/codementorteam/5-ways-to-make-learning-android-development-easier-aak4812o3#.WWSm0nev6jI.whatsapp" alt="">Here’s another interesting blog for beginners…</a></p>
<p>Also, if at any point you think you’ve achieved a mark and have developed cool projects, at least all being given on Udacity’s Developing Android Apps course or you feel “Oh! Android was so easy, there’s nothing left here to do ^~^ !”, you can look out for the things below, which we’ll try to cover in one of our sessions, if we get some good android devs:</p>
<p>1. MVP: Model View Presenter, a code architecture being followed by most of the product based startups and giants. It makes testing much easier.
<br>
2. RxJava: React extension of Java.
<br>
3. Dependency Injection: Like Butterknife by Jake Wharton, and a lot more.
<br>
4. Gradle: The one who compiles your android-studio code. Although you can use it to customize and automate your tasks. Eg: Implementing different flavours of your app by adding just few lines of Gradle code. Like by default there are 2 flavours of your app, as debug(on which you develop), signed(the one you release on playstore).
<br>
5. Dagger: Another useful dependency injection tool.
<br>
6. Room: Makes writing SQLite code and making queries easy as hell.
<br>
7. Try AR development: For native we use ARCore from google, but that’s just for Pixel2 phones as of now. For hybrid, we use game engines like Unity, Godot, etc.
<br>
8. And, you can even write your own libraries, and make others import them as dependency.
<br>
</p>
<p>Remember 3 cheezein, development is all about:
<br>
<strong>PRACTICE, PRACTICE, PRACTICE !!</strong>
</p>
</div>
</section>
</div>
</div>
<!-- Sidebar -->
<div id="sidebar">
<div class="inner">
<!-- Search (Hidden for now)
<section id="search" class="alt">
<form method="post" action="#">
<input type="text" name="query" id="query" placeholder="Search" />
</form>
</section>
-->
<!-- Menu -->
<nav id="menu">
<header class="major">
<h2>Menu</h2>
</header>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="#">HAckathons (Coming Soon)</a></li>
<li>
<span class="opener">Meetups</span>
<ul>
<li><a href="meetup.html">ML Meetup 101</a></li>
<li><a href="meetup1.html">Android Development 101</a></li>
</ul>
</li>
</li>
<li>
<span class="opener">Upcoming Club Events</span>
<ul>
<li><a href="#"></a>After Sessionals and Holi</li>
</ul>
</li>
<li><a href="#">Club Events</a></li>
<li><a href="#touch">About Us</a></li>
</ul>
</nav>
<!-- Section -->
<section>
<header class="major">
<h2>Written By</h2>
</header>
<div class="mini-posts">
<article>
<h2>Aseed Usmani</h2>
<a href="https://www.linkedin.com/in/aseed-usmani-4a3524114/" class="image"><img src="images/aseed.jpg" alt="" /></a>
<p>Hi, I'm Aseed. An undergrad pursuing B.Tech in ECE from JMI, but my interest lies else where (almost everywhere else). I know bits of Java, JavaScript and Android Development.</p>
</article>
<article>
<h2>Saurabh Singh</h2>
<a href="https://www.linkedin.com/in/absolutelysaurabh/" class="image"><img src="images/saurabh.jpg" alt="" /></a>
<p>Hi! I am an Undergrad @Dept. of ECE, currently pursuing BTech(3rd year). My interests include C++, Java and Android.</p>
</article>
</div>
<ul class="actions">
<!-- <li><a href="#" class="button">More</a></li> -->
</ul>
</section>
<section>
<header class="major" id="more">
<h3>Contributed to this repository by</h3>
</header>
<div class="mini-posts">
<article>
<h4>Aditya Anand Thakur</h4>
<a href="https://github.com/anandaditya444" class="image"><img src="images/aditya.jpg" alt="" height="330px" /></a>
<p>Hi! I am an Undergrad @ Department Of Computer Engineering, currently pursuing BTech (2nd Year). My interests include Machine Learning and Web Development.</p>
</div>
</section>
<!-- Section -->
<section>
<header class="major">
<h2>Flagship</h2>
</header>
<a href="http://jmi.ac.in/aboutjamia/centres/innovationentr-epreneurship/introduction" class="image"><img src="images/logo.png" height="250px" widht="250px" alt="" /></a>
<p>HASHes comes under the flagship of Center of Innovation and Entrepreneurship, Jamia Millia Islamia.<br>All of the certificates (if any) thus given will be under the name of CIE, Jamia Millia Islamia.</p>
</section>
<!-- Section -->
<section>
<header class="major">
<h2 id="touch">Get in touch</h2>
</header>
<ul class="contact">
<li class="fa-user">Register @<br><a href="https://bit.ly/HASHes">bit.ly/HASHes</a></li>
<li class="fa-envelope-o"><a href="#">[email protected]</a></li>
<li class="fa-phone">+91 9990570079 <br> +91 8130726590</li>
<li class="fa-map-marker">Center for Innovation and Entrepreneurship Building, Adjacent to Xerox Point, Faculty of Engineering and Technology, Jamia Millia Islamia, New Delhi-25 </li>
</ul>
</section>
<!-- Footer -->
<footer id="footer">
<p class="copyright">Design: <a href="https://html5up.net">HTML5 UP</a> and <br> <a href="https://github.com/faraazahmad">Syed Faraaz Ahmad</a></p>
</footer>
</div>
</div>
</div>
<!-- Scripts -->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/skel.min.js"></script>
<script src="assets/js/util.js"></script>
<!--[if lte IE 8]><script src="assets/js/ie/respond.min.js"></script><![endif]-->
<script src="assets/js/main.js"></script>
<script>
$(document).ready(function(){
// Add smooth scrolling to all links
$("a").on('click', function(event) {
// Make sure this.hash has a value before overriding default behavior
if (this.hash !== "") {
// Prevent default anchor click behavior
event.preventDefault();
// Store hash
var hash = this.hash;
// Using jQuery's animate() method to add smooth page scroll
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
} // End if
});
});
</script>
</body>
</html>