Merge branch 'master' into 'marijn-appje'
# Conflicts: # app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml
This commit is contained in:
@@ -1,25 +1,22 @@
|
||||
package nl.myhyvesbookplus.tagram;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Matrix;
|
||||
import android.hardware.Camera;
|
||||
import android.hardware.Camera.PictureCallback;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.app.Fragment;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.design.widget.FloatingActionButton;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.RelativeLayout.LayoutParams;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import nl.myhyvesbookplus.tagram.controller.UploadClass;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
@@ -31,6 +28,7 @@ import java.io.IOException;
|
||||
*/
|
||||
public class CameraFragment extends Fragment {
|
||||
// TODO: Rename parameter arguments, choose names that match
|
||||
private static final String TAG = "CameraFragment";
|
||||
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
|
||||
private static final String ARG_PARAM1 = "param1";
|
||||
private static final String ARG_PARAM2 = "param2";
|
||||
@@ -43,6 +41,9 @@ public class CameraFragment extends Fragment {
|
||||
|
||||
private Camera mCamera;
|
||||
private CameraPreview mPreview;
|
||||
private byte[] mPhotoRaw;
|
||||
private Bitmap mPhoto;
|
||||
private int facing = Camera.CameraInfo.CAMERA_FACING_BACK;
|
||||
|
||||
public CameraFragment() {
|
||||
// Required empty public constructor
|
||||
@@ -73,9 +74,6 @@ public class CameraFragment extends Fragment {
|
||||
mParam1 = getArguments().getString(ARG_PARAM1);
|
||||
mParam2 = getArguments().getString(ARG_PARAM2);
|
||||
}
|
||||
|
||||
// Hide top bar
|
||||
// ((AppCompatActivity) getActivity()).getSupportActionBar().hide();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,57 +82,130 @@ public class CameraFragment extends Fragment {
|
||||
// Inflate the layout for this fragment
|
||||
final View view = inflater.inflate(R.layout.fragment_camera, container, false);
|
||||
|
||||
mCamera = getCameraInstance(facing);
|
||||
Camera.Parameters params = mCamera.getParameters();
|
||||
params.setRotation(0);
|
||||
mCamera.setParameters(params);
|
||||
|
||||
mPreview = new CameraPreview(getActivity().getBaseContext(), mCamera);
|
||||
final RelativeLayout preview = (RelativeLayout) view.findViewById(R.id.camera_preview);
|
||||
final RelativeLayout pictureButtons = (RelativeLayout) view.findViewById(R.id.picture_taken_buttons);
|
||||
final RelativeLayout filterButtons = (RelativeLayout) view.findViewById(R.id.filter_buttons);
|
||||
final RelativeLayout mCameraLayout = (RelativeLayout) view.findViewById(R.id.camera_preview);
|
||||
// final RelativeLayout mImageTaken = (RelativeLayout) view.findViewById(R.id.picture_view);
|
||||
|
||||
preview.addView(mPreview);
|
||||
mCameraLayout.addView(mPreview);
|
||||
|
||||
// Draw picture and switch button over preview
|
||||
// Draw buttons over preview
|
||||
view.findViewById(R.id.picture_button).bringToFront();
|
||||
view.findViewById(R.id.switch_camera_button).bringToFront();
|
||||
pictureButtons.bringToFront();
|
||||
filterButtons.bringToFront();
|
||||
|
||||
((ImageButton)view.findViewById(R.id.picture_button)).setOnClickListener(new View.OnClickListener() {
|
||||
(view.findViewById(R.id.switch_camera_button)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Toast.makeText(getActivity(), "Snap!", Toast.LENGTH_SHORT).show();
|
||||
/*
|
||||
PictureCallback mPicture = new PictureCallback() {
|
||||
switchFacing();
|
||||
|
||||
@Override
|
||||
public void onPictureTaken(byte[] data, Camera camera) {
|
||||
Log.v("picture", "Getting output media file");
|
||||
File pictureFile = getOutputMediaFile();
|
||||
if (pictureFile == null) {
|
||||
Log.v("picture", "Error creating output file");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
FileOutputStream fos = new FileOutputStream(pictureFile);
|
||||
fos.write(data);
|
||||
fos.close();
|
||||
} catch (IOException e) {
|
||||
Log.v("picture", e.getMessage());
|
||||
}
|
||||
}
|
||||
};
|
||||
*/
|
||||
}
|
||||
});
|
||||
|
||||
((ImageButton)view.findViewById(R.id.switch_camera_button)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
CameraPreview.switchFacing();
|
||||
|
||||
preview.removeView(mPreview);
|
||||
mCameraLayout.removeView(mPreview);
|
||||
mCamera = getCameraInstance(facing);
|
||||
mPreview = new CameraPreview(getActivity().getBaseContext(), mCamera);
|
||||
preview.addView(mPreview);
|
||||
mCameraLayout.addView(mPreview);
|
||||
|
||||
view.findViewById(R.id.picture_button).bringToFront();
|
||||
view.findViewById(R.id.switch_camera_button).bringToFront();
|
||||
}
|
||||
});
|
||||
|
||||
(view.findViewById(R.id.picture_button)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mCamera.takePicture(null, null, new PictureCallback() {
|
||||
@Override
|
||||
public void onPictureTaken(byte[] data, Camera camera) {
|
||||
Bitmap bmp = rotate(BitmapFactory.decodeByteArray(data, 0, data.length, null), 90);
|
||||
mPhoto = bmp;
|
||||
|
||||
PicturePreview mPicPreview = new PicturePreview(getActivity().getBaseContext(), mPhoto);
|
||||
mPicPreview.setId(R.id.pic_preview);
|
||||
Log.d(TAG, "onPictureTaken: PICTURE");
|
||||
|
||||
mCameraLayout.addView(mPicPreview);
|
||||
|
||||
filterButtons.setVisibility(View.VISIBLE);
|
||||
filterButtons.bringToFront();
|
||||
|
||||
// mPicPreview.invalidate();
|
||||
switchButtons(view);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
(view.findViewById(R.id.upload_button)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
UploadClass upload = new UploadClass();
|
||||
upload.uploadPicture(mPhoto);
|
||||
|
||||
mPhoto.recycle();
|
||||
mPhoto = null;
|
||||
|
||||
filterButtons.setVisibility(View.GONE);
|
||||
switchButtons(view);
|
||||
|
||||
mCameraLayout.removeView(mPreview);
|
||||
|
||||
mCamera = getCameraInstance(facing);
|
||||
Camera.Parameters params = mCamera.getParameters();
|
||||
params.setRotation(0);
|
||||
mCamera.setParameters(params);
|
||||
|
||||
mPreview = new CameraPreview(getActivity().getBaseContext(), mCamera);
|
||||
mCameraLayout.addView(mPreview);
|
||||
|
||||
view.findViewById(R.id.picture_button).bringToFront();
|
||||
view.findViewById(R.id.switch_camera_button).bringToFront();
|
||||
|
||||
mCameraLayout.removeView(view.findViewById(R.id.pic_preview));
|
||||
}
|
||||
});
|
||||
|
||||
(view.findViewById(R.id.filter_left)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mCameraLayout.removeView(view.findViewById(R.id.pic_preview));
|
||||
|
||||
PicturePreview.filterPrev();
|
||||
|
||||
PicturePreview mPicPreview = new PicturePreview(getActivity().getBaseContext(), mPhoto);
|
||||
mPicPreview.setId(R.id.pic_preview);
|
||||
|
||||
mCameraLayout.addView(mPicPreview);
|
||||
|
||||
view.findViewById(R.id.picture_taken_buttons).bringToFront();
|
||||
filterButtons.setVisibility(View.VISIBLE);
|
||||
filterButtons.bringToFront();
|
||||
}
|
||||
});
|
||||
|
||||
(view.findViewById(R.id.filter_right)).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mCameraLayout.removeView(view.findViewById(R.id.pic_preview));
|
||||
|
||||
PicturePreview.filterNext();
|
||||
|
||||
PicturePreview mPicPreview = new PicturePreview(getActivity().getBaseContext(), mPhoto);
|
||||
mPicPreview.setId(R.id.pic_preview);
|
||||
|
||||
mCameraLayout.addView(mPicPreview);
|
||||
|
||||
view.findViewById(R.id.picture_taken_buttons).bringToFront();
|
||||
filterButtons.setVisibility(View.VISIBLE);
|
||||
filterButtons.bringToFront();
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@@ -162,6 +233,16 @@ public class CameraFragment extends Fragment {
|
||||
mListener = null;
|
||||
}
|
||||
|
||||
public static Bitmap rotate(Bitmap bitmap, int degree) {
|
||||
int w = bitmap.getWidth();
|
||||
int h = bitmap.getHeight();
|
||||
|
||||
Matrix mtx = new Matrix();
|
||||
mtx.postRotate(degree);
|
||||
|
||||
return Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, true);
|
||||
}
|
||||
|
||||
public static Camera getCameraInstance(int facing) {
|
||||
Camera c = null;
|
||||
try {
|
||||
@@ -172,6 +253,34 @@ public class CameraFragment extends Fragment {
|
||||
return c;
|
||||
}
|
||||
|
||||
public void switchFacing() {
|
||||
if (facing == Camera.CameraInfo.CAMERA_FACING_FRONT)
|
||||
facing = Camera.CameraInfo.CAMERA_FACING_BACK;
|
||||
else
|
||||
facing = Camera.CameraInfo.CAMERA_FACING_FRONT;
|
||||
}
|
||||
|
||||
public void switchButtons(View view) {
|
||||
RelativeLayout pictureButtons = (RelativeLayout) view.findViewById(R.id.picture_taken_buttons);
|
||||
FloatingActionButton upload = (FloatingActionButton) view.findViewById(R.id.upload_button);
|
||||
FloatingActionButton save = (FloatingActionButton) view.findViewById(R.id.save_button);
|
||||
|
||||
if (((Integer)upload.getVisibility()).equals(View.VISIBLE)) {
|
||||
upload.hide();
|
||||
save.hide();
|
||||
|
||||
view.findViewById(R.id.picture_button).setVisibility(View.VISIBLE);
|
||||
view.findViewById(R.id.switch_camera_button).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
pictureButtons.bringToFront();
|
||||
upload.show();
|
||||
save.show();
|
||||
|
||||
view.findViewById(R.id.picture_button).setVisibility(View.GONE);
|
||||
view.findViewById(R.id.switch_camera_button).setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
@@ -182,10 +291,6 @@ public class CameraFragment extends Fragment {
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
public void setCamera(Camera c) {
|
||||
this.mCamera = c;
|
||||
}
|
||||
|
||||
/**
|
||||
* This interface must be implemented by activities that contain this
|
||||
* fragment to allow an interaction in this fragment to be communicated
|
||||
|
||||
@@ -8,13 +8,14 @@ import android.view.SurfaceView;
|
||||
import java.io.IOException;
|
||||
|
||||
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
|
||||
private static String TAG = "CameraPreview";
|
||||
private SurfaceHolder mHolder;
|
||||
private Camera mCamera;
|
||||
private static int facing = 0;
|
||||
private static int facing = Camera.CameraInfo.CAMERA_FACING_BACK;
|
||||
|
||||
public CameraPreview(Context context, Camera camera) {
|
||||
super(context);
|
||||
mCamera = camera.open(facing);
|
||||
mCamera = camera;
|
||||
mCamera.setDisplayOrientation(90);
|
||||
|
||||
mHolder = getHolder();
|
||||
@@ -24,6 +25,7 @@ public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback
|
||||
@Override
|
||||
public void surfaceCreated(SurfaceHolder mHolder) {
|
||||
try {
|
||||
Log.d(TAG, "surfaceCreated: CREATED");
|
||||
mCamera.setPreviewDisplay(mHolder);
|
||||
mCamera.startPreview();
|
||||
} catch (IOException e) {
|
||||
@@ -60,6 +62,7 @@ public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback
|
||||
|
||||
@Override
|
||||
public void surfaceDestroyed(SurfaceHolder holder) {
|
||||
Log.d(TAG, "surfaceDestroyed: DESTROYED");
|
||||
mCamera.stopPreview();
|
||||
mCamera.release();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
package nl.myhyvesbookplus.tagram;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.ColorMatrix;
|
||||
import android.graphics.ColorMatrixColorFilter;
|
||||
import android.graphics.Paint;
|
||||
import android.util.Log;
|
||||
import android.view.SurfaceHolder;
|
||||
import android.view.SurfaceView;
|
||||
|
||||
/**
|
||||
* Created by felix on 23/06/2017.
|
||||
*/
|
||||
|
||||
public class PicturePreview extends SurfaceView implements SurfaceHolder.Callback {
|
||||
private static final int FILTER_NONE = 0;
|
||||
private static final int FILTER_SEPIA = 1;
|
||||
private static final int FILTER_BW = 2;
|
||||
|
||||
private static int currentFilter = FILTER_NONE;
|
||||
|
||||
Bitmap picture;
|
||||
Bitmap filterPicture;
|
||||
|
||||
public PicturePreview(Context context, Bitmap bmp) {
|
||||
super(context);
|
||||
picture = Bitmap.createScaledBitmap(bmp, 1920, 1440, false);
|
||||
setWillNotDraw(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
ColorMatrix cm = new ColorMatrix();
|
||||
Paint paint = new Paint();
|
||||
ColorMatrixColorFilter filter;
|
||||
|
||||
switch (currentFilter) {
|
||||
case FILTER_NONE:
|
||||
canvas.drawBitmap(picture, 0, 0, null);
|
||||
filterPicture = picture;
|
||||
break;
|
||||
case FILTER_SEPIA:
|
||||
canvas.drawBitmap(toSepia(picture), 0, 0, null);
|
||||
filterPicture = toSepia(picture);
|
||||
break;
|
||||
case FILTER_BW:
|
||||
cm.setSaturation(0);
|
||||
filter = new ColorMatrixColorFilter(cm);
|
||||
paint.setColorFilter(filter);
|
||||
canvas.drawBitmap(picture, 0, 0, paint);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static void filterPrev() {
|
||||
switch (currentFilter) {
|
||||
case FILTER_NONE:
|
||||
currentFilter = FILTER_BW;
|
||||
break;
|
||||
case FILTER_SEPIA:
|
||||
currentFilter = FILTER_NONE;
|
||||
break;
|
||||
case FILTER_BW:
|
||||
currentFilter = FILTER_SEPIA;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static void filterNext() {
|
||||
switch (currentFilter) {
|
||||
case FILTER_NONE:
|
||||
currentFilter = FILTER_SEPIA;
|
||||
break;
|
||||
case FILTER_SEPIA:
|
||||
currentFilter = FILTER_BW;
|
||||
break;
|
||||
case FILTER_BW:
|
||||
currentFilter = FILTER_NONE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public Bitmap toSepia(Bitmap color) {
|
||||
int red, green, blue, pixel, gry;
|
||||
int height = color.getHeight();
|
||||
int width = color.getWidth();
|
||||
int depth = 20;
|
||||
|
||||
Bitmap sepia = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
|
||||
|
||||
int[] pixels = new int[width * height];
|
||||
color.getPixels(pixels, 0, width, 0, 0, width, height);
|
||||
for (int i = 0; i < pixels.length; i++) {
|
||||
pixel = pixels[i];
|
||||
|
||||
red = (pixel >> 16) & 0xFF;
|
||||
green = (pixel >> 8) & 0xFF;
|
||||
blue = pixel & 0xFF;
|
||||
|
||||
red = green = blue = (red + green + blue) / 3;
|
||||
|
||||
red += (depth * 2);
|
||||
green += depth;
|
||||
|
||||
if (red > 255)
|
||||
red = 255;
|
||||
if (green > 255)
|
||||
green = 255;
|
||||
pixels[i] = (0xFF << 24) | (red << 16) | (green << 8) | blue;
|
||||
}
|
||||
sepia.setPixels(pixels, 0, width, 0, 0, width, height);
|
||||
return sepia;
|
||||
}
|
||||
|
||||
public Bitmap getPicture() {
|
||||
return filterPicture;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void surfaceCreated(SurfaceHolder holder) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void surfaceDestroyed(SurfaceHolder holder) {
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 199 B |
Binary file not shown.
|
After Width: | Height: | Size: 222 B |
@@ -5,40 +5,103 @@
|
||||
android:layout_height="match_parent"
|
||||
tools:context="nl.myhyvesbookplus.tagram.CameraFragment">
|
||||
|
||||
<LinearLayout
|
||||
<RelativeLayout
|
||||
android:id="@+id/camera_preview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
android:layout_height="match_parent" >
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/picture_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:background="@android:color/transparent"
|
||||
android:layout_margin="10dp"
|
||||
android:padding="10dp"
|
||||
android:scaleType="center"
|
||||
android:scaleX="2"
|
||||
android:scaleY="2"
|
||||
app:srcCompat="@android:drawable/ic_menu_camera" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/switch_camera_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_margin="9dp"
|
||||
android:background="@android:color/transparent"
|
||||
app:srcCompat="@android:drawable/ic_menu_revert" />
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/load_bar"
|
||||
android:visibility="gone"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:indeterminate="true"
|
||||
android:layout_centerInParent="true"/>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/camera_preview"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" >
|
||||
android:id="@+id/filter_buttons"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="60dp"
|
||||
android:layout_centerVertical="true">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/picture_button"
|
||||
android:id="@+id/filter_left"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:scaleX="0.5"
|
||||
android:scaleY="0.5"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:src="@drawable/ic_arrow_back_black_24dp"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/filter_right"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:scaleX="0.5"
|
||||
android:scaleY="0.5"
|
||||
android:layout_alignParentRight="true"
|
||||
android:src="@drawable/ic_arrow_forward_black_24dp"/>
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/picture_taken_buttons"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginLeft="30dp"
|
||||
android:layout_marginRight="30dp"
|
||||
android:layout_marginBottom="20dp">
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/upload_button"
|
||||
android:visibility="gone"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:background="@android:color/transparent"
|
||||
android:layout_margin="10dp"
|
||||
android:padding="10dp"
|
||||
android:scaleX="2"
|
||||
android:scaleY="2"
|
||||
app:srcCompat="@android:drawable/ic_menu_camera" />
|
||||
android:layout_alignParentLeft="true"
|
||||
android:scaleType="center"
|
||||
app:fabSize="normal"
|
||||
android:src="@android:drawable/ic_menu_upload"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/switch_camera_button"
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/save_button"
|
||||
android:visibility="gone"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_margin="9dp"
|
||||
android:background="@android:color/transparent"
|
||||
app:srcCompat="@android:drawable/ic_menu_revert" />
|
||||
|
||||
android:layout_alignParentBottom="true"
|
||||
android:scaleType="center"
|
||||
app:fabSize="normal"
|
||||
android:src="@android:drawable/ic_menu_save"/>
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<resources>
|
||||
<color name="colorPrimary">#fbbf2d</color>
|
||||
<color name="colorPrimaryDark">#ffa70f</color>
|
||||
<color name="colorAccent">#4CAF50</color>
|
||||
<color name="colorAccent">#4bAfe5</color>
|
||||
<!--<color name="colorAccent">#4CAF50</color>-->
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<item name="pic_preview" type="id"/>
|
||||
<item name="camera_preview" type="id"/>
|
||||
</resources>
|
||||
@@ -25,4 +25,6 @@
|
||||
<string name="change_psw_button">Change Password</string>
|
||||
<string name="please_wait">Please Wait</string>
|
||||
<string name="niet_slecht">\"Niet slecht.\"s</string>
|
||||
<string name="upload">Upload</string>
|
||||
<string name="save">Save</string>
|
||||
</resources>
|
||||
|
||||
117
logboek/logboek.tex
Normal file
117
logboek/logboek.tex
Normal file
@@ -0,0 +1,117 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% LATEX-TEMPLATE GENERIEK
|
||||
% Voor readme en meest recente versie, zie
|
||||
% https://gitlab-fnwi.uva.nl/informatica/LaTeX-template.git
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% PACKAGES EN DOCUMENT CONFIGURATIE
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\documentclass{uva-inf-article}
|
||||
\usepackage[dutch]{babel}
|
||||
\usepackage{booktabs}
|
||||
%-------------------------------------------------------------------------------
|
||||
% GEGEVENS VOOR IN DE TITEL, HEADER EN FOOTER
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
% Vul de naam van de opdracht in.
|
||||
\assignment{MyHyvesBookPlusTagram}
|
||||
% Vul het soort opdracht in.
|
||||
\assignmenttype{Samenvatting}
|
||||
% Vul de titel van de eindopdracht in.
|
||||
\title{Logboek}
|
||||
|
||||
% Vul de volledige namen van alle auteurs in.
|
||||
\authors{Niels Zwemmer}
|
||||
% Vul de corresponderende UvAnetID's in.
|
||||
\uvanetids{11025980}
|
||||
|
||||
% Vul altijd de naam in van diegene die het nakijkt, tutor of docent.
|
||||
\tutor{Youri Voet}
|
||||
% Vul indien nodig de naam van de begeleider in.
|
||||
\mentor{}
|
||||
% Vul eventueel ook de naam van de docent of vakcoordinator toe.
|
||||
\docent{}
|
||||
% Vul hier de naam van de PAV-groep in.
|
||||
\group{The Return Of MyHyvesBook+}
|
||||
% Vul de naam van de cursus in.
|
||||
\course{}
|
||||
% Te vinden op onder andere Datanose.
|
||||
\courseid{}
|
||||
\date{\today}
|
||||
|
||||
% Dit is de datum die op het document komt te staan. Standaard is dat vandaag.
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% VOORPAGINA EN EVENTUEEL INHOUDSOPGAVE EN ABSTRACT
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% INHOUD
|
||||
%-------------------------------------------------------------------------------
|
||||
\section{Algemeen}
|
||||
\subsection{19-6-2017}
|
||||
De dag verliep anders dan verwacht door een onverwachte opdracht die de TA's ons oplegde. Deze bestond uit een pitch van een paar minuten die ons plan en project
|
||||
duidelijk moesten maken. Dit plan werd goedgekeurd door Youri. Voor de pitches stond de tijd van 13:00 tot 14:00 ingesteld. Door deze pitch is onze vergadering verplaatst naar dinsdag 20-6-2017 van 11:00 tot 12:00.
|
||||
Na de pitch hebben wij nog geprogrammeerd tot ongeveer 15:00. Daarna zijn wij naar huis gegaan en heeft iedereen voor zichzelf gewerkt.
|
||||
\subsection{20-6-2017}
|
||||
Allereerst zijn de laatste oefenopgaven nagekeken. Daarna zijn Felix en Marijn direct begonnen aan hun onderdelen implementeren waarna Paul en Niels zich bij hen voegden. Marijn heeft het logo ge\"updatet en is begonnen met de upload-class implementeren. Felix heeft een eerste versie van de CameraView gemaakt.
|
||||
Paul is begonnen aan de profielpagina en Niels heeft hem daarmee geholpen. Ook heeft Niels de notulen voor de vergadering gemaakt die vandaag van 11:00 tot 12:00 plaatsvond. Tijdens deze vergadering zijn vooral een aantal ontwerpkeuzes besproken. Tot slot is er een template gemaakt voor de logboeken van ieder persoon, zodat productiviteit zo veel mogelijk ongehinderd kan blijven door het achteraf moeten stroomlijnen van dit soort zaken.
|
||||
\subsection{21-6-2017}
|
||||
De dag begon om 11:00 met een bijeenkomst van Marijn, Niels en Paul. Felix kon niet aanwezig zijn vandaag maar heeft dat gecompenseerd door veel thuis gewerkt te hebben aan de opdracht. Paul en Niels hebben de profielpagina nagenoeg afgemaakt en wachten nu tot Marijn en Felix hun eerste deel hebben ge\"implementeerd zodat zij verder kunnen. Dit zijn de onderdelen foto uploaden en wachtwoord wijzigen.\\
|
||||
Om 13:00 ging Marijn naar zijn Minor Programmeren groep om daar TA te zijn. Paul en Niels hebben tussen 13:00 en 15:00 gewerkt aan de interface opleuken van de profielpagina naast de functionaliteiten die eerder al waren verwerkt.
|
||||
Om 15:00 ging iedereen naar huis, met uitzondering van Marijn die pas om 16:00 klaar was.
|
||||
\subsection{22-6-2017}
|
||||
Vandaag hebben wij om 10 uur afgesproken om alvast een eerste versie van onze poster te maken. We zijn over het algemeen al tevreden over dat resultaat maar de definitieve versie zal minder tekst en meer, grotere plaatjes moeten bevatten.
|
||||
Nadat de poster klaar was, hebben wij geprogrammeerd tot 15:00; de tijd waarop de PAV bijeenkomst begon.
|
||||
Marijn was vanaf 13:00 weer te vinden in het Minor Programmeren lokaal. We hebben allemaal wat progressie geboekt. Paul heeft Felix ondersteunt met zijn camera implementatie waardoor Felix nu bijna toe is aan de filterimplementatie.
|
||||
Marijn is bezig geweest aan de poster ontwerpen onder het toeziend oog van Felix als hoofd-design en Niels heeft een eerste implementatie gedaan voor het updaten van de profielfoto. Na de PAV-bijeenkomst is iedereen in de stromende regen naar huis gegaan.
|
||||
\subsection{23-6-2017}
|
||||
De dag begon deze keer met een korte programmeersessie tussen Marijn en Niels. Felix was iets later aanwezig. Marijn heeft Niels geholpen met een aantal laatste functionaliteiten toevoegen voor het uploaden van een foto naar de Firebase storage. Felix heeft zich vooral bezig gehouden met het implementeren van de filters. Hij heeft zijn camera-deel waarbij zowel een upload -als opslagfunctie is ingebouwd nu.
|
||||
Paul kon vandaag niet aanwezig zijn. Hij heeft zich echter van huis uit bezig gehouden met zijn gedeelte van de profielpagina en heeft een aantal wijzigingen met mij besproken. We hebben een vergadering gehouden van 11:30 tot ongeveer 12:30. Uit deze vergadering zijn een aantal dingen gebleken. Zo hebben wij bijvoorbeeld geconstateerd dat een bitmap niet de beste methode is om de profielfoto op te slaan, omdat deze een slechte kwaliteit biedt.
|
||||
Marijn was vandaag niet nodig bij de Minor Programmeren. Hierdoor waren wij de gehele dag gezamelijk bezig aan de opdracht wat ervoor zorgde dat er een grote productiviteit was.
|
||||
\subsection{24-6-2017 (Zaterdag) }
|
||||
Een ieder is van huis uit bezig geweest met zijn eigen onderdelen t.b.v. Trello. Communicatieverkeer was er nauwelijks omdat iedereen nu goed gefocused kon zijn op zijn eigen werk.
|
||||
\subsection{25-6-2017 (Zondag) }
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{26-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{27-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{28-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{29-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{30-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
|
||||
\section{Persoonlijk}
|
||||
\subsection{19-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{20-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{21-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{22-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{23-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{24-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{25-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{26-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{27-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{28-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{29-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\subsection{30-6-2017}
|
||||
Lorem Ipsum Dolor sit amet.
|
||||
\end{document}
|
||||
115
notulen/notulen_0_1362017.tex
Normal file
115
notulen/notulen_0_1362017.tex
Normal file
@@ -0,0 +1,115 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% LATEX-TEMPLATE GENERIEK
|
||||
% Voor readme en meest recente versie, zie
|
||||
% https://gitlab-fnwi.uva.nl/informatica/LaTeX-template.git
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% PACKAGES EN DOCUMENT CONFIGURATIE
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\documentclass{uva-inf-article}
|
||||
\newcommand\tab[1][1cm]{\hspace*{#1}}
|
||||
\newcommand\tabb[1][1.4cm]{\hspace*{#1}}
|
||||
\usepackage[dutch]{babel}
|
||||
\usepackage{booktabs}
|
||||
%-------------------------------------------------------------------------------
|
||||
% GEGEVENS VOOR IN DE TITEL, HEADER EN FOOTER
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
% Vul de naam van de opdracht in.
|
||||
\assignment{Notulen: The Return Of The MyHyvesBook+}
|
||||
% Vul het soort opdracht in.
|
||||
\assignmenttype{Samenvatting}
|
||||
% Vul de titel van de eindopdracht in.
|
||||
\title{Entry 0: Eerste opzet project}
|
||||
|
||||
% Vul de volledige namen van alle auteurs in.
|
||||
\authors{Marijn Jansen; Felix Atsma; Paul Lagerweij; Niels Zwemmer}
|
||||
% Vul de corresponderende UvAnetID's in.
|
||||
\uvanetids{11166932; 11035064; 11306084; 11025980}
|
||||
|
||||
% Vul altijd de naam in van diegene die het nakijkt, tutor of docent.
|
||||
\tutor{Robin Klusman}
|
||||
% Vul eventueel ook de naam van de docent of vakcoordinator toe.
|
||||
\docent{drs. A. van Inge}
|
||||
% Vul hier de naam van de PAV-groep in.
|
||||
\group{C1 (C++)}
|
||||
% Vul de naam van de cursus in.
|
||||
\course{Multimedia}
|
||||
% Te vinden op onder andere Datanose.
|
||||
\courseid{5062MULT6Y}
|
||||
|
||||
% Dit is de datum die op het document komt te staan. Standaard is dat vandaag.
|
||||
\date{\today}
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% VOORPAGINA EN EVENTUEEL INHOUDSOPGAVE EN ABSTRACT
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\noindent
|
||||
\textbf{Data Vergadering}\\\\
|
||||
Datum:\tab 13-6-2017
|
||||
\\
|
||||
Tijd:\tabb 10:30-12:00
|
||||
\\\\
|
||||
\noindent
|
||||
Aanwezig (fysiek):\tabb\space\space\space Marijn, Felix, Niels\\
|
||||
Aanwezig (telefonisch):\tab Paul\\
|
||||
Afwezig:\tabb\tabb\space\space\space\space-\\\\
|
||||
\noindent
|
||||
\textbf{Onderwerpen besproken}
|
||||
|
||||
\begin{itemize}
|
||||
\item Naam bedacht: MyHyvesBook+Stagram
|
||||
\item Concept bedacht: Een soort live-feed maken die openbaar zichtbaar is voor alle leden van MyHyvesBook+Stagram.
|
||||
\item Projectplan opzetten: Taak voor Niels
|
||||
\item Verdeling gemaakt: Taakverdelingen zijn terug te vinden in het projectplan
|
||||
\item Implementatiekeuzes: We gaan werken met Firebase op verzoek van Marijn.
|
||||
\end{itemize}
|
||||
\pagebreak
|
||||
|
||||
\noindent
|
||||
\textbf{Positieve punten naar voren gekomen}\\\\
|
||||
We hebben nu een concept en naam bedacht. We gaan werken met firebase en willen realistische doelstellingen aannemen. We gaan zo snel mogelijk de backend opzetten en zorgen dat het esthetische gedeelte draait, daarna gaan we over op het multimedia gedeelte.
|
||||
Niels gaat het projectplan opzetten in overleg met de andere groepsleden via de WhatsApp-groep en stuurt de uiteindelijk versie rond ter nakijken. Zodra deze is goedgekeurd door alle leden, wordt het projectplan z.s.m. ingeleverd.
|
||||
Marijn heeft het meest gewerkt met app-development (iOS) en weet dus aardig wat concepten binnen deze wereld. Hij zal dan ook de groepsvoorzitter zijn en nauw samenwerken met alle leden uit de groep en waar nodig ondersteuning kunnen bieden op theoretisch vlak.
|
||||
\\\\
|
||||
|
||||
\noindent
|
||||
\textbf{Kort}
|
||||
\begin{itemize}
|
||||
\item Concept en naam bedacht
|
||||
\item Backend z.s.m.
|
||||
\item Projectplan z.s.m.
|
||||
\item Marijn ervaring app development
|
||||
\end{itemize}
|
||||
|
||||
\noindent
|
||||
\textbf{Negatieve punten naar voren gekomen}\\\\
|
||||
Paul kan minder vaak aanwezig zijn bij de vergaderingen of tijdens programmeersessies op de UvA door ziekte. Hierover zal de studieadviseur op de hoogte worden gebracht. We verwachten hier niet al te veel problemen mee te krijgen.
|
||||
We zijn een groep met weinig ervaring wat betreft Android Programming. De inleidende opdrachten zullen echter voldoende zijn om ons op gang te helpen en dus zal iedereen zijn steentje kunnen bijdragen.
|
||||
Felix en Marijn hebben een herkansing voor een ander vak die zij dienen te leren. Hierdoor zullen zij mogelijk tijdens de laatste paar dagen minder uren per dag kunnen besteden aan het project. Dit kunnen wij met elkaar opvangen door Felix’ en Marijn’s werkdruk iets te verdelen onder de rest van de groep.
|
||||
\\\\
|
||||
|
||||
\noindent
|
||||
\textbf{Kort}
|
||||
\begin{itemize}
|
||||
\item Gegronde omstandigheden Paul
|
||||
\item Weinig Android ervaring
|
||||
\item Herkansing Felix en Marijn
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\vfill \hfill \textit{“Wer hedden d’r zin oan!”}
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% INHOUD
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\end{document}
|
||||
110
notulen/notulen_1_2062017.tex
Normal file
110
notulen/notulen_1_2062017.tex
Normal file
@@ -0,0 +1,110 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% LATEX-TEMPLATE GENERIEK
|
||||
% Voor readme en meest recente versie, zie
|
||||
% https://gitlab-fnwi.uva.nl/informatica/LaTeX-template.git
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% PACKAGES EN DOCUMENT CONFIGURATIE
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\documentclass{uva-inf-article}
|
||||
\newcommand\tab[1][1cm]{\hspace*{#1}}
|
||||
\newcommand\tabb[1][1.4cm]{\hspace*{#1}}
|
||||
\usepackage[dutch]{babel}
|
||||
\usepackage{booktabs}
|
||||
%-------------------------------------------------------------------------------
|
||||
% GEGEVENS VOOR IN DE TITEL, HEADER EN FOOTER
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
% Vul de naam van de opdracht in.
|
||||
\assignment{Notulen: The Return Of The MyHyvesBook+}
|
||||
% Vul het soort opdracht in.
|
||||
\assignmenttype{Samenvatting}
|
||||
% Vul de titel van de eindopdracht in.
|
||||
\title{Entry 1: Eerste offici\"ele vergadering}
|
||||
|
||||
% Vul de volledige namen van alle auteurs in.
|
||||
\authors{Marijn Jansen; Felix Atsma; Paul Lagerweij; Niels Zwemmer}
|
||||
% Vul de corresponderende UvAnetID's in.
|
||||
\uvanetids{11166932; 11035064; 11306084; 11025980}
|
||||
|
||||
% Vul altijd de naam in van diegene die het nakijkt, tutor of docent.
|
||||
\tutor{Robin Klusman}
|
||||
% Vul eventueel ook de naam van de docent of vakcoordinator toe.
|
||||
\docent{drs. A. van Inge}
|
||||
% Vul hier de naam van de PAV-groep in.
|
||||
\group{C1 (C++)}
|
||||
% Vul de naam van de cursus in.
|
||||
\course{Multimedia}
|
||||
% Te vinden op onder andere Datanose.
|
||||
\courseid{5062MULT6Y}
|
||||
|
||||
% Dit is de datum die op het document komt te staan. Standaard is dat vandaag.
|
||||
\date{\today}
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% VOORPAGINA EN EVENTUEEL INHOUDSOPGAVE EN ABSTRACT
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\noindent
|
||||
\textbf{Data Vergadering}\\\\
|
||||
Datum:\tab 20-6-2017
|
||||
\\
|
||||
Tijd:\tabb 11:00-12:00
|
||||
\\\\
|
||||
\noindent
|
||||
Aanwezig (fysiek):\tabb\space\space\space Marijn, Felix, Niels, Paul\\
|
||||
Aanwezig (telefonisch):\tab -\\
|
||||
Afwezig:\tabb\tabb\space\space\space\space-\\\\
|
||||
\noindent
|
||||
\textbf{Onderwerpen besproken}
|
||||
|
||||
\begin{itemize}
|
||||
\item Naam gewijzigd: MyHyvesBookPlusTagram (was MyHyvesBook+Stagram)
|
||||
\item Implementatiekeuzes: Besloten een API te gebruiken voor de feed in de stijl van Facebook die online is gevonden (indien nuttig).
|
||||
\item Backend progressie besproken: Gaat de goede kant op.
|
||||
\item Frontend progressie besproken: Paul is nog wat aan het stoeien met de XML, maar schiet allemaal al aardig op.
|
||||
\end{itemize}
|
||||
\pagebreak
|
||||
|
||||
\noindent
|
||||
\textbf{Positieve punten naar voren gekomen}\\\\
|
||||
Het tempo zit er goed in en door geen gebrek aan motivatie en een goede wil om te leren, vergaat het werk tot nu toe zeer goed. De beginselen beginnen al zichtbaar te worden en steeds meer functionaliteit komt van de grond. Iedereen leeft goed zijn deadline na en komt op tijd voor de vergadering.
|
||||
\\\\
|
||||
|
||||
\noindent
|
||||
\textbf{Kort}
|
||||
\begin{itemize}
|
||||
\item Goed tempo
|
||||
\item Backend gaat goed
|
||||
\item Frontend gaat goed
|
||||
\item We liggen op schema
|
||||
\end{itemize}
|
||||
|
||||
\noindent
|
||||
\textbf{Negatieve punten naar voren gekomen}\\\\
|
||||
Paul en Niels hebben door een gebrek aan ervaring nog wat moeite om de profilepage op te zetten. De oplossing daarvoor is meer hulp vragen aan Felix en Marijn en actief op internet zoeken naar bruikbare guides. Daarnaast is het implementeren van de CameraView in eenvoud tegengevallen waardoor daar wellicht meer ondersteuning voor nodig is door de rest van het team.
|
||||
\\\\
|
||||
|
||||
\noindent
|
||||
\textbf{Kort}
|
||||
\begin{itemize}
|
||||
\item Gebrek ervaring Paul en Niels
|
||||
\item Meer hulp vragen aan teamgenoten nodig
|
||||
\item Tegenvaller tijdens implementatie van de CameraView
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\vfill \hfill \textit{“As `t net kin sa`t moat, dan moat `t mar sa`t kin.”}
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% INHOUD
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\end{document}
|
||||
113
notulen/notulen_2_2362017.tex
Normal file
113
notulen/notulen_2_2362017.tex
Normal file
@@ -0,0 +1,113 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% LATEX-TEMPLATE GENERIEK
|
||||
% Voor readme en meest recente versie, zie
|
||||
% https://gitlab-fnwi.uva.nl/informatica/LaTeX-template.git
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% PACKAGES EN DOCUMENT CONFIGURATIE
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\documentclass{uva-inf-article}
|
||||
\newcommand\tab[1][1cm]{\hspace*{#1}}
|
||||
\newcommand\tabb[1][1.4cm]{\hspace*{#1}}
|
||||
\usepackage[dutch]{babel}
|
||||
\usepackage{booktabs}
|
||||
%-------------------------------------------------------------------------------
|
||||
% GEGEVENS VOOR IN DE TITEL, HEADER EN FOOTER
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
% Vul de naam van de opdracht in.
|
||||
\assignment{Notulen: The Return Of The MyHyvesBook+}
|
||||
% Vul het soort opdracht in.
|
||||
\assignmenttype{Samenvatting}
|
||||
% Vul de titel van de eindopdracht in.
|
||||
\title{Entry 2: Nu komt het echte werk}
|
||||
|
||||
% Vul de volledige namen van alle auteurs in.
|
||||
\authors{Marijn Jansen; Felix Atsma; Paul Lagerweij; Niels Zwemmer}
|
||||
% Vul de corresponderende UvAnetID's in.
|
||||
\uvanetids{11166932; 11035064; 11306084; 11025980}
|
||||
|
||||
% Vul altijd de naam in van diegene die het nakijkt, tutor of docent.
|
||||
\tutor{Robin Klusman}
|
||||
% Vul eventueel ook de naam van de docent of vakcoordinator toe.
|
||||
\docent{drs. A. van Inge}
|
||||
% Vul hier de naam van de PAV-groep in.
|
||||
\group{C1 (C++)}
|
||||
% Vul de naam van de cursus in.
|
||||
\course{Multimedia}
|
||||
% Te vinden op onder andere Datanose.
|
||||
\courseid{5062MULT6Y}
|
||||
|
||||
% Dit is de datum die op het document komt te staan. Standaard is dat vandaag.
|
||||
\date{\today}
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% VOORPAGINA EN EVENTUEEL INHOUDSOPGAVE EN ABSTRACT
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\noindent
|
||||
\textbf{Data Vergadering}\\\\
|
||||
Datum:\tab 23-6-2017
|
||||
\\
|
||||
Tijd:\tabb 11:30-12:00
|
||||
\\
|
||||
Noot: De vergadering is iets later begonnen door een vertraging van zowel Niels als Felix.
|
||||
\\\\
|
||||
\noindent
|
||||
Aanwezig (fysiek):\tabb\space\space\space Marijn, Felix, Niels\\
|
||||
Aanwezig (telefonisch):\tab-\\
|
||||
Afwezig:\tabb\tabb\space\space\space\space Paul\\\\
|
||||
\noindent
|
||||
\textbf{Onderwerpen besproken}
|
||||
|
||||
\begin{itemize}
|
||||
\item Implementatiekeuzes: Ingebouwde camera voor de profielfoto, mogelijkheid tot uitbreiden met gezichtsherkenning (indien tijd).
|
||||
\item Evaluatie: Hoe staan we ervoor? Back-end grotendeels af.
|
||||
\item Problemen aan de kant van Multimedia-team: Niet ingedeeld in een groep, projectplan niet her-inleverbaar.
|
||||
\item Verdeling aangepast: Iedereen helpt elkaar met methodes waar zij verstand van hebben.
|
||||
\end{itemize}
|
||||
\pagebreak
|
||||
|
||||
\noindent
|
||||
\textbf{Positieve punten naar voren gekomen}\\\\
|
||||
We maken goede vooruitgang waarbij we zowel de code als de poster in gedachten hebben. De code ziet er netjes uit en iedereen houdt een consistente stijl aan. Dit zorgt voor een goede werksfeer en weinig over en weer uitleg nodig.
|
||||
Het gebruik van de ingebouwde camera voor een profielfoto (aangezien daar weinig verdere methodes voor nodig zijn zoals die nodig zijn voor een post plaatsen), zorgt ervoor dat veel werk uit handen genomen wordt en wij onszelf meer tijd gunnen voor de overige benodigde functionaliteit. We zitten goed op schema en lopen zelfs op punten wat voor. Dit moeten we zo volhouden om te zorgen dat de app ook nog daadwerkelijk volgemaakt kan worden met posts voor de oplevering volgende week.
|
||||
De back-end is nu grotendeels af, wat ervoor zorgt dat we nu ook echt de filters en andere algoritmes kunnen implementeren en testen.
|
||||
\\\\
|
||||
|
||||
\noindent
|
||||
\textbf{Kort}
|
||||
\begin{itemize}
|
||||
\item Goede vooruitgang, zowel poster als programma.
|
||||
\item Ingebouwde camera goede keuze geweest.
|
||||
\item We liggen op schema; back-end bijna af.
|
||||
\end{itemize}
|
||||
|
||||
\noindent
|
||||
\textbf{Negatieve punten naar voren gekomen}\\\\
|
||||
Paul heeft wat tijd nodig om te herstellen na een aantal dagen achter elkaar aanwezig te zijn geweest op de UvA. Thuis werkt hij echter wel door.
|
||||
Daarnaast zijn we niet goed ingedeeld in een groep op Blackboard, hiervoor zal Niels een mailtje sturen naar Toto om te vragen voor ondersteuning.
|
||||
\\\\
|
||||
|
||||
\noindent
|
||||
\textbf{Kort}
|
||||
\begin{itemize}
|
||||
\item Paul moet even herstellen.
|
||||
\item Geen groep op Blackboard.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
\vfill \hfill \textit{“Wer hedden d’r zin oan!”}
|
||||
|
||||
%-------------------------------------------------------------------------------
|
||||
% INHOUD
|
||||
%-------------------------------------------------------------------------------
|
||||
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user