Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Gramantieri Stefano committed Jul 21, 2016
0 parents commit ec3eb14
Show file tree
Hide file tree
Showing 62 changed files with 2,806 additions and 0 deletions.
1 change: 1 addition & 0 deletions app-mvp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
98 changes: 98 additions & 0 deletions app-mvp/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {
compileSdkVersion rootProject.ext.androidCompileSdkVersion
buildToolsVersion rootProject.ext.androidBuildToolsVersion

// aggiungere questo per il testing
dexOptions {
jumboMode true
}



repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }

}

// aggiungere questo per il testing
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'

exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'


}

defaultConfig {
applicationId "app.go.search"
minSdkVersion rootProject.ext.androidMinSdkVersion
targetSdkVersion rootProject.ext.androidTargetSdkVersion
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

}
}

allprojects {
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:22.1.0'
}
}

dependencies {
Map<String, String> dependencies = rootProject.ext.dependencies;

compile dependencies.appCompat
compile dependencies.cardView
compile dependencies.recyclerView
compile dependencies.design
compile dependencies.gmaps
compile dependencies.retrofit
compile dependencies.retrofitConverterGson
compile dependencies.retrofitAdapterRxJava

compile dependencies.picasso
compile dependencies.rxAndroid
compile dependencies.circleImageView
compile dependencies.butterKnife
compile dependencies.materialDialog
compile dependencies.drawButton

apt 'com.google.dagger:dagger-compiler:2.1'
compile 'com.google.dagger:dagger:2.1'
provided 'org.glassfish:javax.annotation:10.0-b28'


androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.1'


testCompile 'junit:junit:4.12'

}
17 changes: 17 additions & 0 deletions app-mvp/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/ivan/Library/Android/sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package app.go.search;

import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.test.suitebuilder.annotation.LargeTest;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import app.go.search.view.FilmListActivity;

import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard;
import static android.support.test.espresso.action.ViewActions.typeText;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class MainActivityInstrumentationTest {

private static final String STRING_TO_BE_TYPED = "Rocky";

@Rule
public ActivityTestRule<FilmListActivity> mActivityRule = new ActivityTestRule<>(
FilmListActivity.class);

@Test
public void sayHello(){
onView(withId(R.id.edit_text_username)).perform(typeText(STRING_TO_BE_TYPED), closeSoftKeyboard());
onView(withId(R.id.button_search)).perform(click());

}

}
34 changes: 34 additions & 0 deletions app-mvp/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.go.search">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
android:name=".FilmApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">

<activity
android:name=".view.FilmListActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".view.FilmDetailActivity"
android:parentActivityName=".view.FilmListActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar" />

</application>

</manifest>
159 changes: 159 additions & 0 deletions app-mvp/src/main/assets/mycv.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
<html>
<head>
<style type="text/css">
* {
word-wrap: break-word;
}
{style-placeholder}
a {
color: #{link-color};
}
a:active {
color: #{link-color-active};
}
ol,ul {
list-style-position: inside;
padding-left: 0;
padding-right: 0;
}
li:not(:first-child) {
padding-top: 8px;
}
</style>
</head>
<body>

<b>Android developer, full stack</b>

<br><br>

<b>Contact</b>
<ul>
<li>Mob. +39.347.2735823</li>
<li>Skype ID: eirien71</li>
<li>Email: [email protected]</li>
</ul>

<p>I'm a freelancer Android developer, therefore experiencing the full lifecycle of apps from inception, architectural design, implementation and app store launch. I have proven experiences in developing greenfield projects from scratch and in developing server side custom webservices.
I'm searching for an Android role position</p>

<b>Work history</b>

<ul>
<li>Android developer as freelancer from June 2011</li>
<li>Java developer for Data Managenment SPA (current permanent work) from 2008</li>
<li>Perl developer from 2000</li>
<li>DBA from 2004</li>
</ul>




<b>About me</b>
<p>Results-driven developer, passionate about delivering the best possible user experience with attention to software usability.
I am hoping to specialize in software architecture, learn new Android programming techniques and search for challenges that help me evolve and stay always up-to-date</p>


<b>Main activities and responsibilities:</b>
<ul>
<li>Design and develop complex mobile applications from scratch</li>
<li>Understating and implementing of usage and accessibility concepts for building effective UI</li>
<li>Testing and bug fixing</li>
<li>Determining client needs and development of products based on their needs</li>
<li>Abilities in developing server side complex cloud environments in Perl and Java for REST communication with client side Android applications</li>
<li>Involvement in business analysis and suggesting the best solutions based on user experience</li>
</ul>



<b>Qualifications</b>
<ul>
<li>Programming technologies</li>
<li>Deep understanding of Android SDK and development lifecycles</li>
<li>Knowledge of Java and OOP</li>
<li>Strong knowledge of Perl and database Oracle and mysql</li>
<li>Knowledge of jquery mobile framework, HTML5.0 and CSS3</li>
<li>Work efficiently from analysis to architecture to development and design</li>
<li>Oracle University Certification OCP Oracle Certified Professional on 9i</li>
<li>Operating Systems: Windows, Linux</li>
<li>Skills in Eclipse and Android Studio IDE</li>
</ul>



<b>Spoken Languages</b>
<p>English good level, Russian medium level</p>

<b>Other skills</b>
<ul>
<li>Ability in understand client needs and build software from scratch</li>
<li>Ability in reverse engineering</li>
<li>Capability and willingness to learn fast</li>
<li>Possess entrepreneurial spirit</li>
<li>Competitive attitude</li>
<li>Presentation and negotiating skills</li>
</ul>




<b>Android SDK skills in detail</b>
<ul>
<li>Material Design, material support library, knowledge, customization and data-driven usage of elements such as DrawerLayout, Navigation View, Floating labels for editing text, SnackBar, Tabs, CoordinatorLayout and the app bar, Collapsing Toolbars, FragmentStatePageAdapter, usage of ProGuard, usage of the google-play-lib in particular google map with custom infowindow integration, StaggeredGridView customization and usage</li>
<li>Ability in sign-up / extract user-profile data from Facebook Login Graph API and Google+ API in Android Studio
<li>Ability in create in-app deeplinking</li>
<li>Knowledge and usage of MVP pattern architecture for easy testability and maintenance of code. Usage of RxJava with Retrofit and view injection with ButterKnife </li>
<li>Google Video API ExoPlayer, usage direct or embedded in layout, embedding of Zxing qr library FloatingActionButton, FloatingMenuButton, Volley HTTP rest library, RecyclerView, CardsView</li>
<li>Core Android components such as Activities, Fragments, Services, Broadcast Receivers etc.</li>
<li>Ability in write my own webservices server-side to be used in RESTful mode by apps</li>
<li>Ability in integrating UI components with the SQLite DB</li>
<li>Lifecycle of activities/fragments</li>
<li>Ability in building apps optimized for both small and large screen devices</li>
<li>Geolocalization, advanced skills in push notification, knowledge of developing third party server push systems.</li>
<li>Experiences in porting IOS code to Java Android native code.</li>
<li>Blowfish REST server crypted protocol of communication usage and knowledge</li>
<li>Android deep integration of Google Map API. With custom Infowindow, custom Infowindow action,</li>
<li>Customizazion of dialog, listview, combo list, expandablelistview</li>
<li>Use of SharedPreferences</li>
<li>Acra debug integration</li>
</ul>



<b>Android Projects</b><br><br>
<b>Tyffer (Startup cofounder)</b>
<p>The native java Android application is the app front-end of the social marketing platform Tyffer: www.tyffer.com.
I developed both client and server mechanics and architecture. Tyffer is a product of an Italian startup in which I'm the cofounder and CTO. The Android application give the possibility to users to choose from a bulk of categories of offer in which are interested. Offers are launched by merchants registered in Tyffer and they have a big set of web instruments (the merchants interface is written in jquery mobile) for launching both offer and events. The application presents a custom registration form and a category chooser fragment. I developed a custom SMS gateway to complete the registration form as well as the possibility to sign up with Facebook and Google +. Users can choose to book offers or not.</p>


<b>Dimmi (Data Management)</b>
<p>Application front end in Android to let the client of DataManagement SPA (my permanent work) open remotely trouble ticketing to corporate company system. The app let the user authenticate by means of REST session-driven call to DataManagement server (LDAP). Then user can choose for which environment (JSON response) he can open ticket to. For user and superuser the entry form are different. Had to make a full reverse engineering of the Java corporate web application to be able to build servlet for webservices, guiding all the ticketing opening processes from app.</p>



<b>MakeMyApp (Origami)</b>
<p>Porting of MakeMyApp corporate Origami project written in Objective-C, to Android Java native code
The application completed the suite of Origami to sell low cost native app, backed by custom-client back-end. The application followed Origami REST call specifications and presented to user a news area with a detail fragment (and a possibility to choose from multi-store location), a photogallery with pinch to zoom, a map with GPS routing and a contact area</p>



<b>Rimini Tutto L'anno (Origami)</b>
<p>Porting of the corporate Origami project written in Objective-C, to Android Java native code
Application for a city guide of Rimini town with galleries, geolocation of monuments and historical information</p>



<b>Other non-Android works and experiences</b>
<ul>
<li>Analisys and fully engineering and development of an Italian announcements site http://www.24oreannunci.it</li>
<li>Developed a commercial digital signage touch framework web-based (jquery + perl webservices + mysql) full open source</li>
<li>Developed the full back-office suite for www.expofiere.net including website, email tracking and marketing sales manager software </li>
<li>Developed perl custom screen scraping tools to automatically collect data</li>
<li>Development a custom-made perl+mysql platform form marketing mailing list management</li>
<li>Development of web-based software (perl+mysql) for automatic checking accessibility and usability of governmental websites, according to W3C Rules.</li>
<li>Developed a series of user manuals on WEB CD-ROM and custom perl ERP-like for orders-suppliers (perl + mysql) </li>
</ul>



</body>
25 changes: 25 additions & 0 deletions app-mvp/src/main/java/app/go/search/FilmApplication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package app.go.search;

import android.app.Application;

import rx.Scheduler;
import rx.schedulers.Schedulers;

public class FilmApplication extends Application {



private Scheduler defaultSubscribeScheduler;

public Scheduler defaultSubscribeScheduler() {
if (defaultSubscribeScheduler == null) {
defaultSubscribeScheduler = Schedulers.io();
}
return defaultSubscribeScheduler;
}





}
Loading

0 comments on commit ec3eb14

Please sign in to comment.